home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / Magazine / GraphicsCards / StormMesa / src / teximage.s < prev    next >
Text File  |  1999-02-04  |  139KB  |  7,627 lines

  1.  
  2. ; Storm C Compiler
  3. ; Work2:Mesa3/Mesa-3.0/src/teximage.c
  4.     mc68030
  5.     mc68881
  6.     XREF    _gl_read_rgba_span
  7.     XREF    _gl_free_image
  8.     XREF    _gl_pack_rgba_span
  9.     XREF    _gl_unpack_image3D
  10.     XREF    _gl_pixel_addr_in_image
  11.     XREF    _gl_components_in_format
  12.     XREF    _gl_sizeof_type
  13.     XREF    _gl_error
  14.     XREF    _gl_problem
  15.     XREF    _q_memset
  16.     XREF    _q_memcpy
  17.     XREF    _malloc
  18.     XREF    _free
  19.     XREF    _calloc
  20.     XREF    _std__in
  21.     XREF    _std__out
  22.     XREF    _std__err
  23.     XREF    _CC
  24.  
  25.     SECTION "_logbase2:0",CODE
  26.  
  27.  
  28. ;static int logbase2( int n )
  29. _logbase2
  30.     movem.l    d2/d3,-(a7)
  31.     move.l    $C(a7),d2
  32. L464
  33. ;   GLint i = 1;
  34.     moveq    #1,d1
  35. ;   GLint log2 = 0;
  36.     moveq    #0,d0
  37. ;   if (n<0) 
  38.     tst.l    d2
  39.     bpl.b    L468
  40. L465
  41.     moveq    #-1,d0
  42.     movem.l    (a7)+,d2/d3
  43.     rts
  44. L466
  45. ;   while ( n > i ) 
  46.     bra.b    L468
  47. L467
  48. ;      i *= 2;
  49.     moveq    #1,d3
  50.     asl.l    d3,d1
  51. ;      log2++;
  52.     addq.l    #1,d0
  53. L468
  54.     cmp.l    d1,d2
  55.     bgt.b    L467
  56. L469
  57. ;   if (i != n) 
  58.     cmp.l    d2,d1
  59.     beq.b    L471
  60. L470
  61.     moveq    #-1,d0
  62.     movem.l    (a7)+,d2/d3
  63.     rts
  64. L471
  65.     movem.l    (a7)+,d2/d3
  66.     rts
  67.  
  68.     SECTION "_decode_internal_format:0",CODE
  69.  
  70.     rts
  71.  
  72. ;static GLint decode_internal_format( GLint format )
  73. _decode_internal_format
  74.     move.l    4(a7),d0
  75. L472
  76. ;   switch (format)
  77.     cmp.l    #$8049,d0
  78.     beq    L476
  79.     bgt    L481
  80.     cmp.l    #$803D,d0
  81.     beq    L473
  82.     bgt    L482
  83.     cmp.l    #$1908,d0
  84.     beq    L478
  85.     bgt.b    L483
  86.     cmp.l    #4,d0
  87.     beq    L478
  88.     bgt.b    L484
  89.     cmp.l    #2,d0
  90.     beq    L475
  91.     bgt.b    L485
  92.     cmp.l    #1,d0
  93.     beq    L474
  94.     bra    L480
  95. L485
  96.     bgt    L477
  97. L484
  98.     cmp.l    #$1906,d0
  99.     beq    L473
  100.     cmp.l    #$1907,d0
  101.     beq    L477
  102.     bra    L480
  103. L483
  104.     cmp.l    #$2A10,d0
  105.     beq    L477
  106.     bgt.b    L486
  107.     cmp.l    #$1909,d0
  108.     beq    L474
  109.     cmp.l    #$190A,d0
  110.     beq    L475
  111.     bra    L480
  112. L486
  113.     cmp.l    #$803B,d0
  114.     beq    L473
  115.     cmp.l    #$803C,d0
  116.     beq    L473
  117.     bra    L480
  118. L482
  119.     sub.l    #$803E,d0
  120.     cmp.l    #$A,d0
  121.     bhi    L480
  122.     move.l    L487(pc,d0.l*4),a0
  123.     jmp    (a0)
  124. L487
  125.     dc.l    L473
  126.     dc.l    L474
  127.     dc.l    L474
  128.     dc.l    L474
  129.     dc.l    L474
  130.     dc.l    L475
  131.     dc.l    L475
  132.     dc.l    L475
  133.     dc.l    L475
  134.     dc.l    L475
  135.     dc.l    L475
  136. L481
  137.     cmp.l    #$8056,d0
  138.     beq    L478
  139.     bgt.b    L488
  140.     sub.l    #$804A,d0
  141.     cmp.l    #$B,d0
  142.     bhi    L480
  143.     move.l    L489(pc,d0.l*4),a0
  144.     jmp    (a0)
  145. L489
  146.     dc.l    L476
  147.     dc.l    L476
  148.     dc.l    L476
  149.     dc.l    L476
  150.     dc.l    L480
  151.     dc.l    L477
  152.     dc.l    L477
  153.     dc.l    L477
  154.     dc.l    L477
  155.     dc.l    L477
  156.     dc.l    L477
  157.     dc.l    L478
  158. L488
  159.     cmp.l    #$80E2,d0
  160.     beq    L479
  161.     bgt.b    L490
  162.     cmp.l    #$8059,d0
  163.     beq    L478
  164.     bgt.b    L491
  165.     cmp.l    #$8057,d0
  166.     beq    L478
  167.     cmp.l    #$8058,d0
  168.     beq.b    L478
  169.     bra    L480
  170. L491
  171.     cmp.l    #$805A,d0
  172.     beq.b    L478
  173.     cmp.l    #$805B,d0
  174.     beq.b    L478
  175.     bra.b    L480
  176. L490
  177.     cmp.l    #$80E5,d0
  178.     beq.b    L479
  179.     bgt.b    L492
  180.     cmp.l    #$80E3,d0
  181.     beq.b    L479
  182.     cmp.l    #$80E4,d0
  183.     beq.b    L479
  184.     bra.b    L480
  185. L492
  186.     cmp.l    #$80E6,d0
  187.     beq.b    L479
  188.     cmp.l    #$80E7,d0
  189.     beq.b    L479
  190.     bra.b    L480
  191. ;      
  192. L473
  193.     move.l    #$1906,d0
  194.     rts
  195. L474
  196.     move.l    #$1909,d0
  197.     rts
  198. L475
  199.     move.l    #$190A,d0
  200.     rts
  201. L476
  202.     move.l    #$8049,d0
  203.     rts
  204. L477
  205.     move.l    #$1907,d0
  206.     rts
  207. L478
  208.     move.l    #$1908,d0
  209.     rts
  210. L479
  211.     move.l    #$1900,d0
  212.     rts
  213. L480
  214.     moveq    #-1,d0
  215.     rts
  216.  
  217.     SECTION "_components_in_intformat:0",CODE
  218.  
  219.  
  220. ;static GLint components_in_intformat( GLint format )
  221. _components_in_intformat
  222.     move.l    4(a7),d0
  223. L493
  224. ;   switch (format)
  225.     cmp.l    #$8048,d0
  226.     beq    L496
  227.     bgt    L502
  228.     cmp.l    #$803C,d0
  229.     beq    L494
  230.     bgt    L503
  231.     cmp.l    #$1907,d0
  232.     beq    L498
  233.     bgt.b    L504
  234.     cmp.l    #4,d0
  235.     beq    L499
  236.     bgt.b    L505
  237.     cmp.l    #2,d0
  238.     beq    L496
  239.     bgt.b    L506
  240.     cmp.l    #1,d0
  241.     beq    L495
  242.     bra    L501
  243. L506
  244.     bgt    L498
  245. L505
  246.     cmp.l    #$1900,d0
  247.     beq    L500
  248.     cmp.l    #$1906,d0
  249.     beq    L494
  250.     bra    L501
  251. L504
  252.     cmp.l    #$190A,d0
  253.     beq    L496
  254.     bgt.b    L507
  255.     cmp.l    #$1908,d0
  256.     beq    L499
  257.     cmp.l    #$1909,d0
  258.     beq    L495
  259.     bra    L501
  260. L507
  261.     cmp.l    #$2A10,d0
  262.     beq    L498
  263.     cmp.l    #$803B,d0
  264.     beq    L494
  265.     bra    L501
  266. L503
  267.     sub.l    #$803D,d0
  268.     cmp.l    #$A,d0
  269.     bhi    L501
  270.     move.l    L508(pc,d0.l*4),a0
  271.     jmp    (a0)
  272. L508
  273.     dc.l    L494
  274.     dc.l    L494
  275.     dc.l    L495
  276.     dc.l    L495
  277.     dc.l    L495
  278.     dc.l    L495
  279.     dc.l    L496
  280.     dc.l    L496
  281.     dc.l    L496
  282.     dc.l    L496
  283.     dc.l    L496
  284. L502
  285.     cmp.l    #$8056,d0
  286.     beq    L499
  287.     bgt.b    L509
  288.     sub.l    #$8049,d0
  289.     cmp.l    #$C,d0
  290.     bhi    L501
  291.     move.l    L510(pc,d0.l*4),a0
  292.     jmp    (a0)
  293. L510
  294.     dc.l    L497
  295.     dc.l    L497
  296.     dc.l    L497
  297.     dc.l    L497
  298.     dc.l    L497
  299.     dc.l    L501
  300.     dc.l    L498
  301.     dc.l    L498
  302.     dc.l    L498
  303.     dc.l    L498
  304.     dc.l    L498
  305.     dc.l    L498
  306.     dc.l    L499
  307. L509
  308.     cmp.l    #$80E2,d0
  309.     beq    L500
  310.     bgt.b    L511
  311.     cmp.l    #$8059,d0
  312.     beq.b    L499
  313.     bgt.b    L512
  314.     cmp.l    #$8057,d0
  315.     beq.b    L499
  316.     cmp.l    #$8058,d0
  317.     beq.b    L499
  318.     bra.b    L501
  319. L512
  320.     cmp.l    #$805A,d0
  321.     beq.b    L499
  322.     cmp.l    #$805B,d0
  323.     beq.b    L499
  324.     bra.b    L501
  325. L511
  326.     cmp.l    #$80E5,d0
  327.     beq.b    L500
  328.     bgt.b    L513
  329.     cmp.l    #$80E3,d0
  330.     beq.b    L500
  331.     cmp.l    #$80E4,d0
  332.     beq.b    L500
  333.     bra.b    L501
  334. L513
  335.     cmp.l    #$80E6,d0
  336.     beq.b    L500
  337.     cmp.l    #$80E7,d0
  338.     beq.b    L500
  339.     bra.b    L501
  340. ;      
  341. L494
  342.     moveq    #1,d0
  343.     rts
  344. L495
  345.     moveq    #1,d0
  346.     rts
  347. L496
  348.     moveq    #2,d0
  349.     rts
  350. L497
  351.     moveq    #1,d0
  352.     rts
  353. L498
  354.     moveq    #3,d0
  355.     rts
  356. L499
  357.     moveq    #4,d0
  358.     rts
  359. L500
  360.     moveq    #1,d0
  361.     rts
  362. L501
  363.     moveq    #-1,d0
  364.     rts
  365.  
  366.     SECTION "_gl_alloc_texture_image:0",CODE
  367.  
  368.  
  369. ;struct gl_texture_image *gl_alloc_texture_image( void )
  370.     XDEF    _gl_alloc_texture_image
  371. _gl_alloc_texture_image
  372. L514
  373.     pea    $3C.w
  374.     pea    1.w
  375.     jsr    _calloc
  376.     addq.w    #$8,a7
  377.     rts
  378.  
  379.     SECTION "_gl_free_texture_image:0",CODE
  380.  
  381.  
  382. ;void gl_free_texture_image( struct gl_texture_image *teximage )
  383.     XDEF    _gl_free_texture_image
  384. _gl_free_texture_image
  385.     move.l    a2,-(a7)
  386.     move.l    $8(a7),a2
  387. L515
  388. ;   if (teximage->Data) 
  389.     tst.l    $34(a2)
  390.     beq.b    L517
  391. L516
  392. ;      free( teximage->Data );
  393.     move.l    $34(a2),-(a7)
  394.     jsr    _free
  395.     addq.w    #4,a7
  396. L517
  397. ;   free( teximage );
  398.     move.l    a2,-(a7)
  399.     jsr    _free
  400.     addq.w    #4,a7
  401.     move.l    (a7)+,a2
  402.     rts
  403.  
  404.     SECTION "_image_to_texture:0",CODE
  405.  
  406.  
  407. ;static struct gl_texture_image *
  408. _image_to_texture
  409. L692    EQU    -$190
  410.     link    a5,#L692
  411.     movem.l    d2-d7/a2-a4,-(a7)
  412.     fmovem.x fp2/fp3/fp4,-(a7)
  413.     move.l    $14(a5),d2
  414.     move.l    $8(a5),a4
  415. L524
  416. ;   components = components_in_intformat(internalFormat);
  417.     move.l    $10(a5),-(a7)
  418.     jsr    _components_in_intformat
  419.     addq.w    #4,a7
  420.     move.l    d0,d7
  421. ;   numPixels = image->Width * image->Height * image->Depth;
  422.     move.l    $C(a5),a0
  423.     move.l    (a0),-$C(a5)
  424.     move.l    $C(a5),a0
  425.     move.l    -$C(a5),d0
  426.     muls.l    4(a0),d0
  427.     move.l    d0,-$C(a5)
  428.     move.l    $C(a5),a0
  429.     move.l    -$C(a5),d0
  430.     muls.l    $8(a0),d0
  431.     move.l    d0,-$C(a5)
  432. ;   texImage = gl_alloc_texture_image();
  433.     jsr    _gl_alloc_texture_image
  434.     move.l    d0,a2
  435. ;   if (!texImage)
  436.     cmp.w    #0,a2
  437.     bne.b    L526
  438. L525
  439.     moveq    #0,d0
  440.     fmovem.x (a7)+,fp2/fp3/fp4
  441.     movem.l    (a7)+,d2-d7/a2-a4
  442.     unlk    a5
  443.     rts
  444. L526
  445. ;   texImage->Format = (GLenum) decode_internal_format(internalFor
  446.     move.l    $10(a5),-(a7)
  447.     jsr    _decode_internal_format
  448.     addq.w    #4,a7
  449.     move.l    d0,(a2)
  450. ;   texImage->IntFormat = (GLenum) internalFormat;
  451.     move.l    $10(a5),4(a2)
  452. ;   texImage->Border = border;
  453.     move.l    d2,$8(a2)
  454. ;   texImage->Width = image->Width;
  455.     move.l    $C(a5),a0
  456.     move.l    (a0),$C(a2)
  457. ;   texImage->Height = image->Height;
  458.     move.l    $C(a5),a0
  459.     move.l    4(a0),$10(a2)
  460. ;   texImage->Depth = image->Depth;
  461.     move.l    $C(a5),a0
  462.     move.l    $8(a0),$14(a2)
  463. ;   texImage->WidthLog2 = logbase2(image->Width - 2*border);
  464.     move.l    $C(a5),a0
  465.     move.l    d2,d1
  466.     moveq    #1,d6
  467.     asl.l    d6,d1
  468.     move.l    (a0),d0
  469.     sub.l    d1,d0
  470.     move.l    d0,-(a7)
  471.     jsr    _logbase2
  472.     addq.w    #4,a7
  473.     move.l    d0,$24(a2)
  474. ;   if (image->Height==1)  /* 1-D texture */
  475.     move.l    $C(a5),a0
  476.     move.l    4(a0),d0
  477.     cmp.l    #1,d0
  478.     bne.b    L528
  479. L527
  480. ;      texImage->HeightLog2 = 0;
  481.     clr.l    $28(a2)
  482.     bra.b    L529
  483. L528
  484. ;      texImage->HeightLog2 = logbase2(image->Height - 2*border)
  485.     move.l    $C(a5),a0
  486.     move.l    d2,d1
  487.     moveq    #1,d6
  488.     asl.l    d6,d1
  489.     move.l    4(a0),d0
  490.     sub.l    d1,d0
  491.     move.l    d0,-(a7)
  492.     jsr    _logbase2
  493.     addq.w    #4,a7
  494.     move.l    d0,$28(a2)
  495. L529
  496. ;   if (image->Depth==1)   /* 2-D texture */
  497.     move.l    $C(a5),a0
  498.     move.l    $8(a0),d0
  499.     cmp.l    #1,d0
  500.     bne.b    L531
  501. L530
  502. ;      texImage->DepthLog2 = 0;
  503.     clr.l    $2C(a2)
  504.     bra.b    L532
  505. L531
  506. ;      texImage->DepthLog2 = logbase2(image->Depth - 2*border);
  507.     move.l    $C(a5),a0
  508.     move.l    d2,d1
  509.     moveq    #1,d2
  510.     asl.l    d2,d1
  511.     move.l    $8(a0),d0
  512.     sub.l    d1,d0
  513.     move.l    d0,-(a7)
  514.     jsr    _logbase2
  515.     addq.w    #4,a7
  516.     move.l    d0,$2C(a2)
  517. L532
  518. ;   texImage->Width2 = 1 << texImage->WidthLog2;
  519.     moveq    #1,d0
  520.     move.l    $24(a2),d1
  521.     asl.l    d1,d0
  522.     move.l    d0,$18(a2)
  523. ;   texImage->Height2 = 1 << texImage->HeightLog2;
  524.     moveq    #1,d0
  525.     move.l    $28(a2),d1
  526.     asl.l    d1,d0
  527.     move.l    d0,$1C(a2)
  528. ;   texImage->Depth2 = 1 << texImage->DepthLog2;
  529.     moveq    #1,d0
  530.     move.l    $2C(a2),d1
  531.     asl.l    d1,d0
  532.     move.l    d0,$20(a2)
  533. ;   texImage->MaxLog2 = MAX2( texImage->WidthLog2, texImage->Heigh
  534.     move.l    $24(a2),d1
  535.     cmp.l    $28(a2),d1
  536.     bls.b    L534
  537. L533
  538.     move.l    $24(a2),d0
  539.     bra.b    L535
  540. L534
  541.     move.l    $28(a2),d0
  542. L535
  543.     move.l    d0,$30(a2)
  544. ;   texImage->Data = (GLubyte *) malloc( numPixels * components );
  545.     move.l    -$C(a5),d0
  546.     muls.l    d7,d0
  547.     move.l    d0,-(a7)
  548.     jsr    _malloc
  549.     addq.w    #4,a7
  550.     move.l    d0,$34(a2)
  551. ;   if (!texImage->Data) 
  552.     tst.l    $34(a2)
  553.     bne.b    L537
  554. L536
  555. ;      gl_free_texture_image( texImage );
  556.     move.l    a2,-(a7)
  557.     jsr    _gl_free_texture_image
  558.     addq.w    #4,a7
  559.     moveq    #0,d0
  560.     fmovem.x (a7)+,fp2/fp3/fp4
  561.     movem.l    (a7)+,d2-d7/a2-a4
  562.     unlk    a5
  563.     rts
  564. L537
  565. ;   if (ctx->Pixel.RedScale!=1.0F   || ctx->Pixel.RedBias!=0.0F ||
  566.     move.l    a4,a0
  567.     add.l    #$B168,a0
  568.     fmove.s    $8(a0),fp0
  569.     fcmp.s    #$.3F800000,fp0
  570.     fbne.b    L545
  571. L538
  572.     move.l    a4,a0
  573.     add.l    #$B168,a0
  574.     fmove.s    4(a0),fp0
  575.     fcmp.s    #$.00000000,fp0
  576.     fbne.b    L545
  577. L539
  578.     move.l    a4,a0
  579.     add.l    #$B168,a0
  580.     fmove.s    $10(a0),fp0
  581.     fcmp.s    #$.3F800000,fp0
  582.     fbne.b    L545
  583. L540
  584.     move.l    a4,a0
  585.     add.l    #$B168,a0
  586.     fmove.s    $C(a0),fp0
  587.     fcmp.s    #$.00000000,fp0
  588.     fbne.b    L545
  589. L541
  590.     move.l    a4,a0
  591.     add.l    #$B168,a0
  592.     fmove.s    $18(a0),fp0
  593.     fcmp.s    #$.3F800000,fp0
  594.     fbne.b    L545
  595. L542
  596.     move.l    a4,a0
  597.     add.l    #$B168,a0
  598.     fmove.s    $14(a0),fp0
  599.     fcmp.s    #$.00000000,fp0
  600.     fbne.b    L545
  601. L543
  602.     move.l    a4,a0
  603.     add.l    #$B168,a0
  604.     fmove.s    $20(a0),fp0
  605.     fcmp.s    #$.3F800000,fp0
  606.     fbne.b    L545
  607. L544
  608.     move.l    a4,a0
  609.     add.l    #$B168,a0
  610.     ftst.s    $1C(a0)
  611.     fbeq.b    L546
  612. L545
  613. ;      scaleOrBias = GL_TRUE;
  614.     moveq    #1,d7
  615.     bra.b    L547
  616. L546
  617. ;      scaleOrBias = GL_FALSE;
  618.     moveq    #0,d7
  619. L547
  620. ;   switch (image->Type)
  621.     move.l    $C(a5),a0
  622.     move.l    $14(a0),d0
  623.     cmp.l    #$1406,d0
  624.     beq    L631
  625.     bgt.b    L693
  626.     cmp.l    #$1401,d0
  627.     beq    L573
  628.     bra    L690
  629. L693
  630.     cmp.l    #$1A00,d0
  631.     beq.b    L548
  632.     bra    L690
  633. ;      
  634. L548
  635. ;            GLint shift = ctx->Pixel.IndexShift;
  636.     move.l    a4,a0
  637.     add.l    #$B168,a0
  638.     move.l    $2E(a0),d5
  639. ;            GLint offset = ctx->Pixel.IndexOffset;
  640.     move.l    a4,a0
  641.     add.l    #$B168,a0
  642.     move.l    $32(a0),-$1A(a5)
  643. ;            GLint rMask = ctx->Pixel.MapItoRsize-1;
  644.     move.l    a4,a0
  645.     add.l    #$B168,a0
  646.     move.l    $48(a0),-$1E(a5)
  647.     subq.l    #1,-$1E(a5)
  648. ;            GLint gMask = ctx->Pixel.MapItoGsize-1;
  649.     move.l    a4,a0
  650.     add.l    #$B168,a0
  651.     move.l    $4C(a0),-$22(a5)
  652.     subq.l    #1,-$22(a5)
  653. ;            GLint bMask = ctx->Pixel.MapItoBsize-1;
  654.     move.l    a4,a0
  655.     add.l    #$B168,a0
  656.     move.l    $50(a0),-$26(a5)
  657.     subq.l    #1,-$26(a5)
  658. ;            GLint aMask = ctx->Pixel.MapItoAsize-1;
  659.     move.l    a4,a0
  660.     add.l    #$B168,a0
  661.     move.l    $54(a0),-$2A(a5)
  662.     subq.l    #1,-$2A(a5)
  663. ;            GLubyte *srcPtr = (GLubyte *) image->Data;
  664.     move.l    $C(a5),a1
  665.     move.l    $18(a1),a0
  666. ;            for (j=0;
  667.     clr.l    -$32(a5)
  668.     bra    L571
  669. L549
  670. ;               GLubyte bitMask = 128;
  671.     move.b    #$80,d3
  672. ;               for (i=0;
  673.     moveq    #0,d4
  674.     bra    L567
  675. L550
  676. ;                  index = (*srcPtr & bitMask) ? 1 
  677.     moveq    #0,d0
  678.     move.b    (a0),d0
  679.     moveq    #0,d1
  680.     move.b    d3,d1
  681.     and.l    d1,d0
  682.     beq.b    L552
  683. L551
  684.     moveq    #1,d0
  685.     bra.b    L553
  686. L552
  687.     moveq    #0,d0
  688. L553
  689. ;                  bitMask = bitMask >> 1;
  690.     moveq    #0,d1
  691.     move.b    d3,d1
  692.     moveq    #1,d2
  693.     asr.l    d2,d1
  694.     move.b    d1,d3
  695. ;                  if (bitMask==0) 
  696.     bne.b    L555
  697. L554
  698. ;                     bitMask = 128;
  699.     move.b    #$80,d3
  700. ;                     srcPtr++;
  701.     addq.w    #1,a0
  702. L555
  703. ;                  if (shift>=0) 
  704.     tst.l    d5
  705.     bmi.b    L557
  706. L556
  707. ;                     index = (index << shift) +
  708.     asl.l    d5,d0
  709.     add.l    -$1A(a5),d0
  710.     bra.b    L558
  711. L557
  712. ;                     index = (index >> -shift) 
  713.     move.l    d5,d1
  714.     neg.l    d1
  715.     asr.l    d1,d0
  716.     add.l    -$1A(a5),d0
  717. L558
  718. ;                  red   = (GLint) (ctx->Pixel.MapI
  719.     move.l    a4,a1
  720.     add.l    #$B9D0,a1
  721.     move.l    d0,d1
  722.     and.l    -$1E(a5),d1
  723.     fmove.s    0(a1,d1.l*4),fp0
  724.     fmul.s    #$.437F0000,fp0
  725.     fmove.l    fp0,d1
  726. ;                  green = (GLint) (ctx->Pixel.MapI
  727.     move.l    a4,a1
  728.     add.l    #$BDD0,a1
  729.     move.l    d0,d2
  730.     and.l    -$22(a5),d2
  731.     fmove.s    0(a1,d2.l*4),fp0
  732.     fmul.s    #$.437F0000,fp0
  733.     fmove.l    fp0,d2
  734.     move.b    d2,-$3E(a5)
  735. ;                  blue  = (GLint) (ctx->Pixel.MapI
  736.     move.l    a4,a1
  737.     add.l    #$C1D0,a1
  738.     move.l    d0,d2
  739.     and.l    -$26(a5),d2
  740.     fmove.s    0(a1,d2.l*4),fp0
  741.     fmul.s    #$.437F0000,fp0
  742.     fmove.l    fp0,d2
  743.     move.b    d2,-$3F(a5)
  744. ;                  alpha = (GLint) (ctx->Pixel.MapI
  745.     move.l    a4,a1
  746.     add.l    #$C5D0,a1
  747.     and.l    -$2A(a5),d0
  748.     fmove.s    0(a1,d0.l*4),fp0
  749.     fmul.s    #$.437F0000,fp0
  750.     fmove.l    fp0,d0
  751. ;                  pixel = j * image->Width + i;
  752.     move.l    $C(a5),a1
  753.     move.l    (a1),d2
  754.     muls.l    -$32(a5),d2
  755.     add.l    d4,d2
  756. ;                  switch (texImage->Format)
  757.     move.l    (a2),d6
  758.     cmp.l    #$1909,d6
  759.     beq.b    L560
  760.     bgt.b    L694
  761.     cmp.l    #$1907,d6
  762.     beq.b    L563
  763.     bgt.b    L695
  764.     cmp.l    #$1906,d6
  765.     beq.b    L559
  766.     bra    L565
  767. L695
  768.     bgt    L564
  769. L694
  770.     cmp.l    #$190A,d6
  771.     beq.b    L561
  772.     cmp.l    #$8049,d6
  773.     beq.b    L562
  774.     bra    L565
  775. ;                     
  776. L559
  777. ;                        texImage->Data[pixel
  778.     move.l    $34(a2),a1
  779.     move.b    d0,0(a1,d2.l)
  780. ;                        
  781.     bra    L566
  782. L560
  783. ;                        texImage->Data[pixel
  784.     move.l    $34(a2),a1
  785.     move.b    d1,0(a1,d2.l)
  786. ;                        
  787.     bra    L566
  788. L561
  789. ;                        texImage->Data[pixel
  790.     move.l    d2,d6
  791.     moveq    #1,d7
  792.     asl.l    d7,d6
  793.     move.l    $34(a2),a1
  794.     move.b    d1,0(a1,d6.l)
  795. ;                        texImage->Data[pixel
  796.     move.l    $34(a2),a1
  797.     moveq    #1,d1
  798.     asl.l    d1,d2
  799.     lea    1(a1),a1
  800.     move.b    d0,0(a1,d2.l)
  801. ;                        
  802.     bra    L566
  803. L562
  804. ;                        texImage->Data[pixel
  805.     move.l    $34(a2),a1
  806.     move.b    d1,0(a1,d2.l)
  807. ;                        
  808.     bra    L566
  809. L563
  810. ;                        texImage->Data[pixel
  811.     move.l    d2,d0
  812.     muls.l    #3,d0
  813.     move.l    $34(a2),a1
  814.     move.b    d1,0(a1,d0.l)
  815. ;                        texImage->Data[pixel
  816.     move.l    $34(a2),a1
  817.     move.l    d2,d0
  818.     muls.l    #3,d0
  819.     lea    1(a1),a1
  820.     move.b    -$3E(a5),0(a1,d0.l)
  821. ;                        texImage->Data[pixel
  822.     move.l    $34(a2),a1
  823.     muls.l    #3,d2
  824.     lea    2(a1),a1
  825.     move.b    -$3F(a5),0(a1,d2.l)
  826. ;                        
  827.     bra.b    L566
  828. L564
  829. ;                        texImage->Data[pixel
  830.     move.l    d2,d6
  831.     moveq    #2,d7
  832.     asl.l    d7,d6
  833.     move.l    $34(a2),a1
  834.     move.b    d1,0(a1,d6.l)
  835. ;                        texImage->Data[pixel
  836.     move.l    $34(a2),a1
  837.     move.l    d2,d1
  838.     moveq    #2,d6
  839.     asl.l    d6,d1
  840.     lea    1(a1),a1
  841.     move.b    -$3E(a5),0(a1,d1.l)
  842. ;                        texImage->Data[pixel
  843.     move.l    $34(a2),a1
  844.     move.l    d2,d1
  845.     moveq    #2,d6
  846.     asl.l    d6,d1
  847.     lea    2(a1),a1
  848.     move.b    -$3F(a5),0(a1,d1.l)
  849. ;                        texImage->Data[pixel
  850.     move.l    $34(a2),a1
  851.     moveq    #2,d1
  852.     asl.l    d1,d2
  853.     lea    3(a1),a1
  854.     move.b    d0,0(a1,d2.l)
  855. ;                        
  856.     bra.b    L566
  857. L565
  858. ;                        gl_problem(ctx,"Bad 
  859.     move.l    #L518,-(a7)
  860.     move.l    a4,-(a7)
  861.     jsr    _gl_problem
  862.     addq.w    #$8,a7
  863.     moveq    #0,d0
  864.     fmovem.x (a7)+,fp2/fp3/fp4
  865.     movem.l    (a7)+,d2-d7/a2-a4
  866.     unlk    a5
  867.     rts
  868. L566
  869.     addq.l    #1,d4
  870. L567
  871.     move.l    $C(a5),a1
  872.     cmp.l    (a1),d4
  873.     blt    L550
  874. L568
  875. ;                        return 
  876. ;               if (bitMask!=128) 
  877.     cmp.b    #$80,d3
  878.     beq.b    L570
  879. L569
  880. ;                  srcPtr++;
  881.     addq.w    #1,a0
  882. L570
  883.     addq.l    #1,-$32(a5)
  884. L571
  885.     move.l    $C(a5),a1
  886.     move.l    -$32(a5),d1
  887.     cmp.l    4(a1),d1
  888.     blt    L549
  889. L572
  890. ;         
  891.     bra    L691
  892. L573
  893. ;         for (pixel=0;
  894.     moveq    #0,d2
  895.     bra    L629
  896. L574
  897. ;            switch (image->Format)
  898.     move.l    $C(a5),a0
  899.     move.l    $10(a0),d0
  900.     sub.l    #$1900,d0
  901.     cmp.l    #$A,d0
  902.     bhi    L587
  903.     move.l    L696(pc,d0.l*4),a0
  904.     jmp    (a0)
  905. L696
  906.     dc.l    L575
  907.     dc.l    L587
  908.     dc.l    L587
  909.     dc.l    L581
  910.     dc.l    L582
  911.     dc.l    L583
  912.     dc.l    L584
  913.     dc.l    L579
  914.     dc.l    L580
  915.     dc.l    L585
  916.     dc.l    L586
  917. ;               
  918. L575
  919. ;                  if (decode_internal_format(inter
  920.     move.l    $10(a5),-(a7)
  921.     jsr    _decode_internal_format
  922.     addq.w    #4,a7
  923.     cmp.l    #$1900,d0
  924.     bne.b    L577
  925. L576
  926. ;                     GLint index = ((GLubyte*)i
  927.     move.l    $C(a5),a1
  928.     move.l    $18(a1),a0
  929.     moveq    #0,d0
  930.     move.b    0(a0,d2.l),d0
  931. ;                     red = index;
  932.     bra    L578
  933. L577
  934. ;                     GLint index = ((GLubyte*)i
  935.     move.l    $C(a5),a1
  936.     move.l    $18(a1),a0
  937.     moveq    #0,d1
  938.     move.b    0(a0,d2.l),d1
  939. ;                     red   = (GLint) (255.0F * 
  940.     move.l    a4,a0
  941.     add.l    #$B9D0,a0
  942.     fmove.s    0(a0,d1.l*4),fp0
  943.     fmul.s    #$.437F0000,fp0
  944.     fmove.l    fp0,d0
  945. ;                     green = (GLint) (255.0F * 
  946.     move.l    a4,a0
  947.     add.l    #$BDD0,a0
  948.     fmove.s    0(a0,d1.l*4),fp0
  949.     fmul.s    #$.437F0000,fp0
  950.     fmove.l    fp0,d3
  951.     move.b    d3,d5
  952. ;                     blue  = (GLint) (255.0F * 
  953.     move.l    a4,a0
  954.     add.l    #$C1D0,a0
  955.     fmove.s    0(a0,d1.l*4),fp0
  956.     fmul.s    #$.437F0000,fp0
  957.     fmove.l    fp0,d3
  958.     move.b    d3,d4
  959. ;                     alpha = (GLint) (255.0F * 
  960.     move.l    a4,a0
  961.     add.l    #$C5D0,a0
  962.     fmove.s    0(a0,d1.l*4),fp0
  963.     fmul.s    #$.437F0000,fp0
  964.     fmove.l    fp0,d1
  965.     move.b    d1,d3
  966. L578
  967. ;                  
  968.     bra    L588
  969. L579
  970. ;                  red   = ((GLubyte*) image->Data)
  971.     move.l    $C(a5),a1
  972.     move.l    d2,d0
  973.     muls.l    #3,d0
  974.     move.l    $18(a1),a0
  975.     move.b    0(a0,d0.l),d0
  976. ;                  green = ((GLubyte*) image->Data)
  977.     move.l    $C(a5),a1
  978.     move.l    $18(a1),a0
  979.     move.l    d2,d1
  980.     muls.l    #3,d1
  981.     lea    1(a0),a0
  982.     move.b    0(a0,d1.l),d5
  983. ;                  blue  = ((GLubyte*) image->Data)
  984.     move.l    $C(a5),a1
  985.     move.l    $18(a1),a0
  986.     move.l    d2,d1
  987.     muls.l    #3,d1
  988.     lea    2(a0),a0
  989.     move.b    0(a0,d1.l),d4
  990. ;                  alpha = 255;
  991.     move.b    #$FF,d3
  992. ;                  
  993.     bra    L588
  994. L580
  995. ;                  red   = ((GLubyte*) image->Data)
  996.     move.l    $C(a5),a1
  997.     move.l    d2,d0
  998.     moveq    #2,d1
  999.     asl.l    d1,d0
  1000.     move.l    $18(a1),a0
  1001.     move.b    0(a0,d0.l),d0
  1002. ;                  green = ((GLubyte*) image->Data)
  1003.     move.l    $C(a5),a1
  1004.     move.l    $18(a1),a0
  1005.     move.l    d2,d1
  1006.     moveq    #2,d3
  1007.     asl.l    d3,d1
  1008.     lea    1(a0),a0
  1009.     move.b    0(a0,d1.l),d5
  1010. ;                  blue  = ((GLubyte*) image->Data)
  1011.     move.l    $C(a5),a1
  1012.     move.l    $18(a1),a0
  1013.     move.l    d2,d1
  1014.     moveq    #2,d3
  1015.     asl.l    d3,d1
  1016.     lea    2(a0),a0
  1017.     move.b    0(a0,d1.l),d4
  1018. ;                  alpha = ((GLubyte*) image->Data)
  1019.     move.l    $C(a5),a1
  1020.     move.l    $18(a1),a0
  1021.     move.l    d2,d1
  1022.     moveq    #2,d3
  1023.     asl.l    d3,d1
  1024.     lea    3(a0),a0
  1025.     move.b    0(a0,d1.l),d3
  1026. ;                  
  1027.     bra    L588
  1028. L581
  1029. ;                  red   = ((GLubyte*) image->Data)
  1030.     move.l    $C(a5),a1
  1031.     move.l    $18(a1),a0
  1032.     move.b    0(a0,d2.l),d0
  1033. ;                  green = 0;
  1034.     moveq    #0,d5
  1035. ;                  blue  = 0;
  1036.     moveq    #0,d4
  1037. ;                  alpha = 255;
  1038.     move.b    #$FF,d3
  1039. ;                  
  1040.     bra    L588
  1041. L582
  1042. ;                  red   = 0;
  1043.     moveq    #0,d0
  1044. ;                  green = ((GLubyte*) image->Data)
  1045.     move.l    $C(a5),a1
  1046.     move.l    $18(a1),a0
  1047.     move.b    0(a0,d2.l),d5
  1048. ;                  blue  = 0;
  1049.     moveq    #0,d4
  1050. ;                  alpha = 255;
  1051.     move.b    #$FF,d3
  1052. ;                  
  1053.     bra    L588
  1054. L583
  1055. ;                  red   = 0;
  1056.     moveq    #0,d0
  1057. ;                  green = 0;
  1058.     moveq    #0,d5
  1059. ;                  blue  = ((GLubyte*) image->Data)
  1060.     move.l    $C(a5),a1
  1061.     move.l    $18(a1),a0
  1062.     move.b    0(a0,d2.l),d4
  1063. ;                  alpha = 255;
  1064.     move.b    #$FF,d3
  1065. ;                  
  1066.     bra    L588
  1067. L584
  1068. ;                  red   = 0;
  1069.     moveq    #0,d0
  1070. ;                  green = 0;
  1071.     moveq    #0,d5
  1072. ;                  blue  = 0;
  1073.     moveq    #0,d4
  1074. ;                  alpha = ((GLubyte*) image->Data)
  1075.     move.l    $C(a5),a1
  1076.     move.l    $18(a1),a0
  1077.     move.b    0(a0,d2.l),d3
  1078. ;                  
  1079.     bra.b    L588
  1080. L585
  1081. ;                  red   = ((GLubyte*) image->Data)
  1082.     move.l    $C(a5),a1
  1083.     move.l    $18(a1),a0
  1084.     move.b    0(a0,d2.l),d0
  1085. ;                  green = red;
  1086.     move.b    d0,d5
  1087. ;                  blue  = red;
  1088.     move.b    d0,d4
  1089. ;                  alpha = 255;
  1090.     move.b    #$FF,d3
  1091. ;                  
  1092.     bra.b    L588
  1093. L586
  1094. ;                  red   = ((GLubyte*) image->Data)
  1095.     move.l    $C(a5),a1
  1096.     move.l    d2,d0
  1097.     moveq    #1,d1
  1098.     asl.l    d1,d0
  1099.     move.l    $18(a1),a0
  1100.     move.b    0(a0,d0.l),d0
  1101. ;                  green = red;
  1102.     move.b    d0,d5
  1103. ;                  blue  = red;
  1104.     move.b    d0,d4
  1105. ;                  alpha = ((GLubyte*) image->Data)
  1106.     move.l    $C(a5),a1
  1107.     move.l    $18(a1),a0
  1108.     move.l    d2,d1
  1109.     moveq    #1,d3
  1110.     asl.l    d3,d1
  1111.     lea    1(a0),a0
  1112.     move.b    0(a0,d1.l),d3
  1113. ;                  
  1114.     bra.b    L588
  1115. L587
  1116. ;                 gl_problem(ctx,"Bad format (2) in 
  1117.     move.l    #L519,-(a7)
  1118.     move.l    a4,-(a7)
  1119.     jsr    _gl_problem
  1120.     addq.w    #$8,a7
  1121.     moveq    #0,d0
  1122.     fmovem.x (a7)+,fp2/fp3/fp4
  1123.     movem.l    (a7)+,d2-d7/a2-a4
  1124.     unlk    a5
  1125.     rts
  1126. L588
  1127. ;                 return 
  1128. ;            if (scaleOrBias || ctx->Pixel.MapColorFlag) 
  1129.     tst.b    d7
  1130.     bne.b    L590
  1131. L589
  1132.     move.l    a4,a0
  1133.     add.l    #$B168,a0
  1134.     tst.b    $36(a0)
  1135.     beq    L619
  1136. L590
  1137. ;               GLfloat r = red   * (1.0F/255.0F);
  1138.     and.l    #$FF,d0
  1139.     fmove.l    d0,fp3
  1140.     fmul.s    #$.3B808080,fp3
  1141. ;               GLfloat g = green * (1.0F/255.0F);
  1142.     moveq    #0,d0
  1143.     move.b    d5,d0
  1144.     fmove.l    d0,fp2
  1145.     fmul.s    #$.3B808080,fp2
  1146. ;               GLfloat b = blue  * (1.0F/255.0F);
  1147.     moveq    #0,d0
  1148.     move.b    d4,d0
  1149.     fmove.l    d0,fp1
  1150.     fmul.s    #$.3B808080,fp1
  1151. ;               GLfloat a = alpha * (1.0F/255.0F);
  1152.     moveq    #0,d0
  1153.     move.b    d3,d0
  1154.     fmove.l    d0,fp0
  1155.     fmul.s    #$.3B808080,fp0
  1156. ;               if (scaleOrBias) 
  1157.     tst.b    d7
  1158.     beq    L616
  1159. L591
  1160. ;                  r = r * ctx->Pixel.RedScale   + 
  1161.     move.l    a4,a0
  1162.     add.l    #$B168,a0
  1163.     fmul.s    $8(a0),fp3
  1164.     move.l    a4,a0
  1165.     add.l    #$B168,a0
  1166.     fadd.s    4(a0),fp3
  1167. ;                  g = g * ctx->Pixel.GreenScale + 
  1168.     move.l    a4,a0
  1169.     add.l    #$B168,a0
  1170.     fmul.s    $10(a0),fp2
  1171.     move.l    a4,a0
  1172.     add.l    #$B168,a0
  1173.     fadd.s    $C(a0),fp2
  1174. ;                  b = b * ctx->Pixel.BlueScale  + 
  1175.     move.l    a4,a0
  1176.     add.l    #$B168,a0
  1177.     fmul.s    $18(a0),fp1
  1178.     move.l    a4,a0
  1179.     add.l    #$B168,a0
  1180.     fadd.s    $14(a0),fp1
  1181. ;                  a = a * ctx->Pixel.AlphaScale + 
  1182.     move.l    a4,a0
  1183.     add.l    #$B168,a0
  1184.     fmul.s    $20(a0),fp0
  1185.     move.l    a4,a0
  1186.     add.l    #$B168,a0
  1187.     fadd.s    $1C(a0),fp0
  1188. ;                  r = CLAMP( r, 0.0F, 1.0F );
  1189.     fcmp.s    #$.00000000,fp3
  1190.     fboge.b    L593
  1191. L592
  1192.     fmove.s    #$.00000000,fp3
  1193.     bra.b    L597
  1194. L593
  1195.     fcmp.s    #$.3F800000,fp3
  1196.     fbole.b    L595
  1197. L594
  1198.     fmove.s    #$.3F800000,fp3
  1199. L595
  1200. L596
  1201. L597
  1202. ;                  g = CLAMP( g, 0.0F, 1.0F );
  1203.     fcmp.s    #$.00000000,fp2
  1204.     fboge.b    L599
  1205. L598
  1206.     fmove.s    #$.00000000,fp2
  1207.     bra.b    L603
  1208. L599
  1209.     fcmp.s    #$.3F800000,fp2
  1210.     fbole.b    L601
  1211. L600
  1212.     fmove.s    #$.3F800000,fp2
  1213. L601
  1214. L602
  1215. L603
  1216. ;                  b = CLAMP( b, 0.0F, 1.0F );
  1217.     fcmp.s    #$.00000000,fp1
  1218.     fboge.b    L605
  1219. L604
  1220.     fmove.s    #$.00000000,fp1
  1221.     bra.b    L609
  1222. L605
  1223.     fcmp.s    #$.3F800000,fp1
  1224.     fbole.b    L607
  1225. L606
  1226.     fmove.s    #$.3F800000,fp1
  1227. L607
  1228. L608
  1229. L609
  1230. ;                  a = CLAMP( a, 0.0F, 1.0F );
  1231.     fcmp.s    #$.00000000,fp0
  1232.     fboge.b    L611
  1233. L610
  1234.     fmove.s    #$.00000000,fp0
  1235.     bra.b    L615
  1236. L611
  1237.     fcmp.s    #$.3F800000,fp0
  1238.     fbole.b    L613
  1239. L612
  1240.     fmove.s    #$.3F800000,fp0
  1241. L613
  1242. L614
  1243. L615
  1244. L616
  1245. ;               if (ctx->Pixel.MapColorFlag) 
  1246.     move.l    a4,a0
  1247.     add.l    #$B168,a0
  1248.     tst.b    $36(a0)
  1249.     beq    L618
  1250. L617
  1251. ;                  GLint ir = (GLint) (r*ctx->Pixel
  1252.     move.l    a4,a0
  1253.     add.l    #$B168,a0
  1254.     fmove.l    $58(a0),fp4
  1255.     fmul.x    fp4,fp3
  1256.     fmove.l    fp3,d4
  1257. ;                  GLint ig = (GLint) (g*ctx->Pixel
  1258.     move.l    a4,a0
  1259.     add.l    #$B168,a0
  1260.     fmove.l    $5C(a0),fp3
  1261.     fmul.x    fp3,fp2
  1262.     fmove.l    fp2,d3
  1263. ;                  GLint ib = (GLint) (b*ctx->Pixel
  1264.     move.l    a4,a0
  1265.     add.l    #$B168,a0
  1266.     fmove.l    $60(a0),fp2
  1267.     fmul.x    fp2,fp1
  1268.     fmove.l    fp1,d1
  1269. ;                  GLint ia = (GLint) (a*ctx->Pixel
  1270.     move.l    a4,a0
  1271.     add.l    #$B168,a0
  1272.     fmove.l    $64(a0),fp1
  1273.     fmul.x    fp1,fp0
  1274.     fmove.l    fp0,d0
  1275. ;                  r = ctx->Pixel.MapRtoR[ir];
  1276.     move.l    a4,a0
  1277.     add.l    #$CDD0,a0
  1278.     fmove.s    0(a0,d4.l*4),fp3
  1279. ;                  g = ctx->Pixel.MapGtoG[ig];
  1280.     move.l    a4,a0
  1281.     add.l    #$D1D0,a0
  1282.     fmove.s    0(a0,d3.l*4),fp2
  1283. ;                  b = ctx->Pixel.MapBtoB[ib];
  1284.     move.l    a4,a0
  1285.     add.l    #$D5D0,a0
  1286.     fmove.s    0(a0,d1.l*4),fp1
  1287. ;                  a = ctx->Pixel.MapAtoA[ia];
  1288.     move.l    a4,a0
  1289.     add.l    #$D9D0,a0
  1290.     fmove.s    0(a0,d0.l*4),fp0
  1291. L618
  1292. ;               red   = (GLint) (r * 255.0F);
  1293.     fmul.s    #$.437F0000,fp3
  1294.     fmove.l    fp3,d0
  1295. ;               green = (GLint) (g * 255.0F);
  1296.     fmul.s    #$.437F0000,fp2
  1297.     fmove.l    fp2,d1
  1298.     move.b    d1,d5
  1299. ;               blue  = (GLint) (b * 255.0F);
  1300.     fmul.s    #$.437F0000,fp1
  1301.     fmove.l    fp1,d1
  1302.     move.b    d1,d4
  1303. ;               alpha = (GLint) (a * 255.0F);
  1304.     fmul.s    #$.437F0000,fp0
  1305.     fmove.l    fp0,d1
  1306.     move.b    d1,d3
  1307. L619
  1308. ;            switch (texImage->Format)
  1309.     move.l    (a2),d1
  1310.     cmp.l    #$1908,d1
  1311.     beq    L626
  1312.     bgt.b    L697
  1313.     cmp.l    #$1906,d1
  1314.     beq.b    L621
  1315.     bgt.b    L698
  1316.     cmp.l    #$1900,d1
  1317.     beq.b    L620
  1318.     bra    L627
  1319. L698
  1320.     bgt.b    L625
  1321. L697
  1322.     cmp.l    #$190A,d1
  1323.     beq.b    L623
  1324.     bgt.b    L699
  1325.     blt.b    L622
  1326. L699
  1327.     cmp.l    #$8049,d1
  1328.     beq.b    L624
  1329.     bra    L627
  1330. ;               
  1331. L620
  1332. ;                  texImage->Data[pixel] = red;
  1333.     move.l    $34(a2),a0
  1334.     move.b    d0,0(a0,d2.l)
  1335. ;                  
  1336.     bra    L628
  1337. L621
  1338. ;                  texImage->Data[pixel] = alpha;
  1339.     move.l    $34(a2),a0
  1340.     move.b    d3,0(a0,d2.l)
  1341. ;                  
  1342.     bra    L628
  1343. L622
  1344. ;                  texImage->Data[pixel] = red;
  1345.     move.l    $34(a2),a0
  1346.     move.b    d0,0(a0,d2.l)
  1347. ;                  
  1348.     bra    L628
  1349. L623
  1350. ;                  texImage->Data[pixel*2+0] = red;
  1351.     move.l    d2,d1
  1352.     moveq    #1,d6
  1353.     asl.l    d6,d1
  1354.     move.l    $34(a2),a0
  1355.     move.b    d0,0(a0,d1.l)
  1356. ;                  texImage->Data[pixel*2+1] = alph
  1357.     move.l    $34(a2),a0
  1358.     move.l    d2,d0
  1359.     moveq    #1,d1
  1360.     asl.l    d1,d0
  1361.     lea    1(a0),a0
  1362.     move.b    d3,0(a0,d0.l)
  1363. ;                  
  1364.     bra    L628
  1365. L624
  1366. ;                  texImage->Data[pixel] = red;
  1367.     move.l    $34(a2),a0
  1368.     move.b    d0,0(a0,d2.l)
  1369. ;                  
  1370.     bra    L628
  1371. L625
  1372. ;                  texImage->Data[pixel*3+0] = red;
  1373.     move.l    d2,d1
  1374.     muls.l    #3,d1
  1375.     move.l    $34(a2),a0
  1376.     move.b    d0,0(a0,d1.l)
  1377. ;                  texImage->Data[pixel*3+1] = gree
  1378.     move.l    $34(a2),a0
  1379.     move.l    d2,d0
  1380.     muls.l    #3,d0
  1381.     lea    1(a0),a0
  1382.     move.b    d5,0(a0,d0.l)
  1383. ;                  texImage->Data[pixel*3+2] = blue;
  1384.     move.l    $34(a2),a0
  1385.     move.l    d2,d0
  1386.     muls.l    #3,d0
  1387.     lea    2(a0),a0
  1388.     move.b    d4,0(a0,d0.l)
  1389. ;                  
  1390.     bra.b    L628
  1391. L626
  1392. ;                  texImage->Data[pixel*4+0] = red;
  1393.     move.l    d2,d1
  1394.     moveq    #2,d6
  1395.     asl.l    d6,d1
  1396.     move.l    $34(a2),a0
  1397.     move.b    d0,0(a0,d1.l)
  1398. ;                  texImage->Data[pixel*4+1] = gree
  1399.     move.l    $34(a2),a0
  1400.     move.l    d2,d0
  1401.     moveq    #2,d1
  1402.     asl.l    d1,d0
  1403.     lea    1(a0),a0
  1404.     move.b    d5,0(a0,d0.l)
  1405. ;                  texImage->Data[pixel*4+2] = blue;
  1406.     move.l    $34(a2),a0
  1407.     move.l    d2,d0
  1408.     moveq    #2,d1
  1409.     asl.l    d1,d0
  1410.     lea    2(a0),a0
  1411.     move.b    d4,0(a0,d0.l)
  1412. ;                  texImage->Data[pixel*4+3] = alph
  1413.     move.l    $34(a2),a0
  1414.     move.l    d2,d0
  1415.     moveq    #2,d1
  1416.     asl.l    d1,d0
  1417.     lea    3(a0),a0
  1418.     move.b    d3,0(a0,d0.l)
  1419. ;                  
  1420.     bra.b    L628
  1421. L627
  1422. ;                  gl_problem(ctx,"Bad format (3) i
  1423.     move.l    #L520,-(a7)
  1424.     move.l    a4,-(a7)
  1425.     jsr    _gl_problem
  1426.     addq.w    #$8,a7
  1427.     moveq    #0,d0
  1428.     fmovem.x (a7)+,fp2/fp3/fp4
  1429.     movem.l    (a7)+,d2-d7/a2-a4
  1430.     unlk    a5
  1431.     rts
  1432. L628
  1433.     addq.l    #1,d2
  1434. L629
  1435.     cmp.l    -$C(a5),d2
  1436.     blt    L574
  1437. L630
  1438. ;                  return 
  1439. ;         
  1440.     bra    L691
  1441. L631
  1442. ;         for (pixel=0;
  1443.     moveq    #0,d2
  1444.     bra    L688
  1445. L632
  1446. ;            switch (texImage->Format)
  1447.     move.l    (a2),d0
  1448.     sub.l    #$1900,d0
  1449.     cmp.l    #$A,d0
  1450.     bhi    L648
  1451.     move.l    L700(pc,d0.l*4),a0
  1452.     jmp    (a0)
  1453. L700
  1454.     dc.l    L633
  1455.     dc.l    L648
  1456.     dc.l    L648
  1457.     dc.l    L642
  1458.     dc.l    L643
  1459.     dc.l    L644
  1460.     dc.l    L645
  1461.     dc.l    L640
  1462.     dc.l    L641
  1463.     dc.l    L646
  1464.     dc.l    L647
  1465. ;               
  1466. L633
  1467. ;                  if (decode_internal_format(inter
  1468.     move.l    $10(a5),-(a7)
  1469.     jsr    _decode_internal_format
  1470.     addq.w    #4,a7
  1471.     cmp.l    #$1900,d0
  1472.     bne.b    L635
  1473. L634
  1474. ;                     GLint index = (GLint) ((GL
  1475.     move.l    $C(a5),a1
  1476.     move.l    $18(a1),a0
  1477.     fmove.s    0(a0,d2.l*4),fp0
  1478.     fmove.l    fp0,d0
  1479. ;                     red = index;
  1480.     fmove.l    d0,fp0
  1481.     bra    L639
  1482. L635
  1483. ;                     GLint shift = ctx->Pixel.I
  1484.     move.l    a4,a0
  1485.     add.l    #$B168,a0
  1486.     move.l    $2E(a0),d1
  1487. ;                     GLint offset = ctx->Pixel.
  1488.     move.l    a4,a0
  1489.     add.l    #$B168,a0
  1490.     move.l    $32(a0),-$68(a5)
  1491. ;                     GLint rMask = ctx->Pixel.M
  1492.     move.l    a4,a0
  1493.     add.l    #$B168,a0
  1494.     move.l    $48(a0),d0
  1495.     subq.l    #1,d0
  1496.     move.l    d0,d6
  1497. ;                     GLint gMask = ctx->Pixel.M
  1498.     move.l    a4,a0
  1499.     add.l    #$B168,a0
  1500.     move.l    $4C(a0),d5
  1501.     subq.l    #1,d5
  1502. ;                     GLint bMask = ctx->Pixel.M
  1503.     move.l    a4,a0
  1504.     add.l    #$B168,a0
  1505.     move.l    $50(a0),d4
  1506.     subq.l    #1,d4
  1507. ;                     GLint aMask = ctx->Pixel.M
  1508.     move.l    a4,a0
  1509.     add.l    #$B168,a0
  1510.     move.l    $54(a0),d3
  1511.     subq.l    #1,d3
  1512. ;                     GLint index = (GLint) ((GL
  1513.     move.l    $C(a5),a1
  1514.     move.l    $18(a1),a0
  1515.     fmove.s    0(a0,d2.l*4),fp0
  1516.     fmove.l    fp0,d0
  1517. ;                     if (shift>=0) 
  1518.     tst.l    d1
  1519.     bmi.b    L637
  1520. L636
  1521. ;                        index = (index << sh
  1522.     asl.l    d1,d0
  1523.     add.l    -$68(a5),d0
  1524.     bra.b    L638
  1525. L637
  1526. ;                        index = (index >> -s
  1527.     neg.l    d1
  1528.     asr.l    d1,d0
  1529.     add.l    -$68(a5),d0
  1530. L638
  1531. ;                     red   = ctx->Pixel.MapItoR
  1532.     move.l    a4,a0
  1533.     add.l    #$B9D0,a0
  1534.     move.l    d0,d1
  1535.     and.l    d6,d1
  1536.     fmove.s    0(a0,d1.l*4),fp0
  1537. ;                     green = ctx->Pixel.MapItoG
  1538.     move.l    a4,a0
  1539.     add.l    #$BDD0,a0
  1540.     move.l    d0,d1
  1541.     and.l    d5,d1
  1542.     fmove.s    0(a0,d1.l*4),fp4
  1543. ;                     blue  = ctx->Pixel.MapItoB
  1544.     move.l    a4,a0
  1545.     add.l    #$C1D0,a0
  1546.     move.l    d0,d1
  1547.     and.l    d4,d1
  1548.     fmove.s    0(a0,d1.l*4),fp3
  1549. ;                     alpha = ctx->Pixel.MapItoA
  1550.     move.l    a4,a0
  1551.     add.l    #$C5D0,a0
  1552.     and.l    d3,d0
  1553.     fmove.s    0(a0,d0.l*4),fp2
  1554. L639
  1555. ;                  
  1556.     bra    L649
  1557. L640
  1558. ;                  red   = ((GLfloat*) image->Data)
  1559.     move.l    $C(a5),a1
  1560.     move.l    d2,d0
  1561.     muls.l    #3,d0
  1562.     move.l    $18(a1),a0
  1563.     fmove.s    0(a0,d0.l*4),fp0
  1564. ;                  green = ((GLfloat*) image->Data)
  1565.     move.l    $C(a5),a1
  1566.     move.l    $18(a1),a0
  1567.     move.l    d2,d0
  1568.     muls.l    #3,d0
  1569.     lea    4(a0),a0
  1570.     fmove.s    0(a0,d0.l*4),fp4
  1571. ;                  blue  = ((GLfloat*) image->Data)
  1572.     move.l    $C(a5),a1
  1573.     move.l    $18(a1),a0
  1574.     move.l    d2,d0
  1575.     muls.l    #3,d0
  1576.     lea    $8(a0),a0
  1577.     fmove.s    0(a0,d0.l*4),fp3
  1578. ;                  alpha = 1.0;
  1579.     fmove.s    #$.3F800000,fp2
  1580. ;                  
  1581.     bra    L649
  1582. L641
  1583. ;                  red   = ((GLfloat*) image->Data)
  1584.     move.l    $C(a5),a1
  1585.     move.l    d2,d0
  1586.     moveq    #2,d1
  1587.     asl.l    d1,d0
  1588.     move.l    $18(a1),a0
  1589.     fmove.s    0(a0,d0.l*4),fp0
  1590. ;                  green = ((GLfloat*) image->Data)
  1591.     move.l    $C(a5),a1
  1592.     move.l    $18(a1),a0
  1593.     move.l    d2,d0
  1594.     moveq    #2,d1
  1595.     asl.l    d1,d0
  1596.     lea    4(a0),a0
  1597.     fmove.s    0(a0,d0.l*4),fp4
  1598. ;                  blue  = ((GLfloat*) image->Data)
  1599.     move.l    $C(a5),a1
  1600.     move.l    $18(a1),a0
  1601.     move.l    d2,d0
  1602.     moveq    #2,d1
  1603.     asl.l    d1,d0
  1604.     lea    $8(a0),a0
  1605.     fmove.s    0(a0,d0.l*4),fp3
  1606. ;                  alpha = ((GLfloat*) image->Data)
  1607.     move.l    $C(a5),a1
  1608.     move.l    $18(a1),a0
  1609.     move.l    d2,d0
  1610.     moveq    #2,d1
  1611.     asl.l    d1,d0
  1612.     lea    $C(a0),a0
  1613.     fmove.s    0(a0,d0.l*4),fp2
  1614. ;                  
  1615.     bra    L649
  1616. L642
  1617. ;                  red   = ((GLfloat*) image->Data)
  1618.     move.l    $C(a5),a1
  1619.     move.l    $18(a1),a0
  1620.     fmove.s    0(a0,d2.l*4),fp0
  1621. ;                  green = 0.0;
  1622.     fmove.s    #$.00000000,fp4
  1623. ;                  blue  = 0.0;
  1624.     fmove.s    #$.00000000,fp3
  1625. ;                  alpha = 1.0;
  1626.     fmove.s    #$.3F800000,fp2
  1627. ;                  
  1628.     bra    L649
  1629. L643
  1630. ;                  red   = 0.0;
  1631.     fmove.s    #$.00000000,fp0
  1632. ;                  green = ((GLfloat*) image->Data)
  1633.     move.l    $C(a5),a1
  1634.     move.l    $18(a1),a0
  1635.     fmove.s    0(a0,d2.l*4),fp4
  1636. ;                  blue  = 0.0;
  1637.     fmove.s    #$.00000000,fp3
  1638. ;                  alpha = 1.0;
  1639.     fmove.s    #$.3F800000,fp2
  1640. ;                  
  1641.     bra    L649
  1642. L644
  1643. ;                  red   = 0.0;
  1644.     fmove.s    #$.00000000,fp0
  1645. ;                  green = 0.0;
  1646.     fmove.s    #$.00000000,fp4
  1647. ;                  blue  = ((GLfloat*) image->Data)
  1648.     move.l    $C(a5),a1
  1649.     move.l    $18(a1),a0
  1650.     fmove.s    0(a0,d2.l*4),fp3
  1651. ;                  alpha = 1.0;
  1652.     fmove.s    #$.3F800000,fp2
  1653. ;                  
  1654.     bra    L649
  1655. L645
  1656. ;                  red   = 0.0;
  1657.     fmove.s    #$.00000000,fp0
  1658. ;                  green = 0.0;
  1659.     fmove.s    #$.00000000,fp4
  1660. ;                  blue  = 0.0;
  1661.     fmove.s    #$.00000000,fp3
  1662. ;                  alpha = ((GLfloat*) image->Data)
  1663.     move.l    $C(a5),a1
  1664.     move.l    $18(a1),a0
  1665.     fmove.s    0(a0,d2.l*4),fp2
  1666. ;                  
  1667.     bra    L649
  1668. L646
  1669. ;                  red   = ((GLfloat*) image->Data)
  1670.     move.l    $C(a5),a1
  1671.     move.l    $18(a1),a0
  1672.     fmove.s    0(a0,d2.l*4),fp0
  1673. ;                  green = red;
  1674.     fmove.x    fp0,fp4
  1675. ;                  blue  = red;
  1676.     fmove.x    fp0,fp3
  1677. ;                  alpha = 1.0;
  1678.     fmove.s    #$.3F800000,fp2
  1679. ;                  
  1680.     bra.b    L649
  1681. L647
  1682. ;                  red   = ((GLfloat*) image->Data)
  1683.     move.l    $C(a5),a1
  1684.     move.l    d2,d0
  1685.     moveq    #1,d1
  1686.     asl.l    d1,d0
  1687.     move.l    $18(a1),a0
  1688.     fmove.s    0(a0,d0.l*4),fp0
  1689. ;                  green = red;
  1690.     fmove.x    fp0,fp4
  1691. ;                  blue  = red;
  1692.     fmove.x    fp0,fp3
  1693. ;                  alpha = ((GLfloat*) image->Data)
  1694.     move.l    $C(a5),a1
  1695.     move.l    $18(a1),a0
  1696.     move.l    d2,d0
  1697.     moveq    #1,d1
  1698.     asl.l    d1,d0
  1699.     lea    4(a0),a0
  1700.     fmove.s    0(a0,d0.l*4),fp2
  1701. ;                  
  1702.     bra.b    L649
  1703. L648
  1704. ;                  gl_problem(ctx,"Bad format (4) i
  1705.     move.l    #L521,-(a7)
  1706.     move.l    a4,-(a7)
  1707.     jsr    _gl_problem
  1708.     addq.w    #$8,a7
  1709.     moveq    #0,d0
  1710.     fmovem.x (a7)+,fp2/fp3/fp4
  1711.     movem.l    (a7)+,d2-d7/a2-a4
  1712.     unlk    a5
  1713.     rts
  1714. L649
  1715. ;                  return 
  1716. ;            if (image->Format!=GL_COLOR_INDEX) 
  1717.     move.l    $C(a5),a0
  1718.     move.l    $10(a0),d0
  1719.     cmp.l    #$1900,d0
  1720.     beq    L678
  1721. L650
  1722. ;               if (scaleOrBias) 
  1723.     tst.b    d7
  1724.     beq    L676
  1725. L651
  1726. ;                  red   = red   * ctx->Pixel.RedSc
  1727.     move.l    a4,a0
  1728.     add.l    #$B168,a0
  1729.     fmul.s    $8(a0),fp0
  1730.     move.l    a4,a0
  1731.     add.l    #$B168,a0
  1732.     fadd.s    4(a0),fp0
  1733. ;                  green = green * ctx->Pixel.Green
  1734.     move.l    a4,a0
  1735.     add.l    #$B168,a0
  1736.     fmul.s    $10(a0),fp4
  1737.     move.l    a4,a0
  1738.     add.l    #$B168,a0
  1739.     fadd.s    $C(a0),fp4
  1740. ;                  blue  = blue  * ctx->Pixel.BlueS
  1741.     move.l    a4,a0
  1742.     add.l    #$B168,a0
  1743.     fmul.s    $18(a0),fp3
  1744.     move.l    a4,a0
  1745.     add.l    #$B168,a0
  1746.     fadd.s    $14(a0),fp3
  1747. ;                  alpha = alpha * ctx->Pixel.Alpha
  1748.     move.l    a4,a0
  1749.     add.l    #$B168,a0
  1750.     fmul.s    $20(a0),fp2
  1751.     move.l    a4,a0
  1752.     add.l    #$B168,a0
  1753.     fadd.s    $1C(a0),fp2
  1754. ;                  red   = CLAMP( red,    0.0F, 1.0
  1755.     fcmp.s    #$.00000000,fp0
  1756.     fboge.b    L653
  1757. L652
  1758.     fmove.s    #$.00000000,fp0
  1759.     bra.b    L657
  1760. L653
  1761.     fcmp.s    #$.3F800000,fp0
  1762.     fbole.b    L655
  1763. L654
  1764.     fmove.s    #$.3F800000,fp0
  1765. L655
  1766. L656
  1767. L657
  1768. ;                  green = CLAMP( green,  0.0F, 1.0
  1769.     fcmp.s    #$.00000000,fp4
  1770.     fboge.b    L659
  1771. L658
  1772.     fmove.s    #$.00000000,fp4
  1773.     bra.b    L663
  1774. L659
  1775.     fcmp.s    #$.3F800000,fp4
  1776.     fbole.b    L661
  1777. L660
  1778.     fmove.s    #$.3F800000,fp4
  1779. L661
  1780. L662
  1781. L663
  1782. ;                  blue  = CLAMP( blue,   0.0F, 1.0
  1783.     fcmp.s    #$.00000000,fp3
  1784.     fboge.b    L665
  1785. L664
  1786.     fmove.s    #$.00000000,fp3
  1787.     bra.b    L669
  1788. L665
  1789.     fcmp.s    #$.3F800000,fp3
  1790.     fbole.b    L667
  1791. L666
  1792.     fmove.s    #$.3F800000,fp3
  1793. L667
  1794. L668
  1795. L669
  1796. ;                  alpha = CLAMP( alpha,  0.0F, 1.0
  1797.     fcmp.s    #$.00000000,fp2
  1798.     fboge.b    L671
  1799. L670
  1800.     fmove.s    #$.00000000,fp2
  1801.     bra.b    L675
  1802. L671
  1803.     fcmp.s    #$.3F800000,fp2
  1804.     fbole.b    L673
  1805. L672
  1806.     fmove.s    #$.3F800000,fp2
  1807. L673
  1808. L674
  1809. L675
  1810. L676
  1811. ;               if (ctx->Pixel.MapColorFlag) 
  1812.     move.l    a4,a0
  1813.     add.l    #$B168,a0
  1814.     tst.b    $36(a0)
  1815.     beq    L678
  1816. L677
  1817. ;                  GLint ir = (GLint) (red  *ctx->P
  1818.     move.l    a4,a0
  1819.     add.l    #$B168,a0
  1820.     fmove.l    $58(a0),fp1
  1821.     fmul.x    fp1,fp0
  1822.     fmove.l    fp0,d4
  1823. ;                  GLint ig = (GLint) (green*ctx->P
  1824.     move.l    a4,a0
  1825.     add.l    #$B168,a0
  1826.     fmove.l    $5C(a0),fp0
  1827.     fmul.x    fp0,fp4
  1828.     fmove.l    fp4,d3
  1829. ;                  GLint ib = (GLint) (blue *ctx->P
  1830.     move.l    a4,a0
  1831.     add.l    #$B168,a0
  1832.     fmove.l    $60(a0),fp0
  1833.     fmul.x    fp0,fp3
  1834.     fmove.l    fp3,d1
  1835. ;                  GLint ia = (GLint) (alpha*ctx->P
  1836.     move.l    a4,a0
  1837.     add.l    #$B168,a0
  1838.     fmove.l    $64(a0),fp0
  1839.     fmul.x    fp0,fp2
  1840.     fmove.l    fp2,d0
  1841. ;                  red   = ctx->Pixel.MapRtoR[ir];
  1842.     move.l    a4,a0
  1843.     add.l    #$CDD0,a0
  1844.     fmove.s    0(a0,d4.l*4),fp0
  1845. ;                  green = ctx->Pixel.MapGtoG[ig];
  1846.     move.l    a4,a0
  1847.     add.l    #$D1D0,a0
  1848.     fmove.s    0(a0,d3.l*4),fp4
  1849. ;                  blue  = ctx->Pixel.MapBtoB[ib];
  1850.     move.l    a4,a0
  1851.     add.l    #$D5D0,a0
  1852.     fmove.s    0(a0,d1.l*4),fp3
  1853. ;                  alpha = ctx->Pixel.MapAtoA[ia];
  1854.     move.l    a4,a0
  1855.     add.l    #$D9D0,a0
  1856.     fmove.s    0(a0,d0.l*4),fp2
  1857. L678
  1858. ;            switch (texImage->Format)
  1859.     move.l    (a2),d0
  1860.     cmp.l    #$1908,d0
  1861.     beq    L685
  1862.     bgt.b    L701
  1863.     cmp.l    #$1906,d0
  1864.     beq.b    L680
  1865.     bgt.b    L702
  1866.     cmp.l    #$1900,d0
  1867.     beq.b    L679
  1868.     bra    L686
  1869. L702
  1870.     bgt    L684
  1871. L701
  1872.     cmp.l    #$190A,d0
  1873.     beq.b    L682
  1874.     bgt.b    L703
  1875.     blt.b    L681
  1876. L703
  1877.     cmp.l    #$8049,d0
  1878.     beq    L683
  1879.     bra    L686
  1880. ;               
  1881. L679
  1882. ;                  texImage->Data[pixel] = (GLint) 
  1883.     fmul.s    #$.437F0000,fp0
  1884.     fmove.l    fp0,d0
  1885.     move.l    $34(a2),a0
  1886.     move.b    d0,0(a0,d2.l)
  1887. ;                  
  1888.     bra    L687
  1889. L680
  1890. ;                  texImage->Data[pixel] = (GLint) 
  1891.     fmove.x    fp2,fp0
  1892.     fmul.s    #$.437F0000,fp0
  1893.     fmove.l    fp0,d0
  1894.     move.l    $34(a2),a0
  1895.     move.b    d0,0(a0,d2.l)
  1896. ;                  
  1897.     bra    L687
  1898. L681
  1899. ;                  texImage->Data[pixel] = (GLint) 
  1900.     fmul.s    #$.437F0000,fp0
  1901.     fmove.l    fp0,d0
  1902.     move.l    $34(a2),a0
  1903.     move.b    d0,0(a0,d2.l)
  1904. ;                  
  1905.     bra    L687
  1906. L682
  1907. ;                  texImage->Data[pixel*2+0] = (GLi
  1908.     fmul.s    #$.437F0000,fp0
  1909.     fmove.l    fp0,d0
  1910.     move.b    d0,d1
  1911.     move.l    d2,d0
  1912.     moveq    #1,d3
  1913.     asl.l    d3,d0
  1914.     move.l    $34(a2),a0
  1915.     move.b    d1,0(a0,d0.l)
  1916. ;                  texImage->Data[pixel*2+1] = (GLi
  1917.     fmove.x    fp2,fp0
  1918.     fmul.s    #$.437F0000,fp0
  1919.     fmove.l    fp0,d0
  1920.     move.b    d0,d1
  1921.     move.l    $34(a2),a0
  1922.     move.l    d2,d0
  1923.     moveq    #1,d3
  1924.     asl.l    d3,d0
  1925.     lea    1(a0),a0
  1926.     move.b    d1,0(a0,d0.l)
  1927. ;                  
  1928.     bra    L687
  1929. L683
  1930. ;                  texImage->Data[pixel] = (GLint) 
  1931.     fmul.s    #$.437F0000,fp0
  1932.     fmove.l    fp0,d0
  1933.     move.l    $34(a2),a0
  1934.     move.b    d0,0(a0,d2.l)
  1935. ;                  
  1936.     bra    L687
  1937. L684
  1938. ;                  texImage->Data[pixel*3+0] = (GLi
  1939.     fmul.s    #$.437F0000,fp0
  1940.     fmove.l    fp0,d0
  1941.     move.b    d0,d1
  1942.     move.l    d2,d0
  1943.     muls.l    #3,d0
  1944.     move.l    $34(a2),a0
  1945.     move.b    d1,0(a0,d0.l)
  1946. ;                  texImage->Data[pixel*3+1] = (GLi
  1947.     fmove.x    fp4,fp0
  1948.     fmul.s    #$.437F0000,fp0
  1949.     fmove.l    fp0,d0
  1950.     move.b    d0,d1
  1951.     move.l    $34(a2),a0
  1952.     move.l    d2,d0
  1953.     muls.l    #3,d0
  1954.     lea    1(a0),a0
  1955.     move.b    d1,0(a0,d0.l)
  1956. ;                  texImage->Data[pixel*3+2] = (GLi
  1957.     fmove.x    fp3,fp0
  1958.     fmul.s    #$.437F0000,fp0
  1959.     fmove.l    fp0,d0
  1960.     move.b    d0,d1
  1961.     move.l    $34(a2),a0
  1962.     move.l    d2,d0
  1963.     muls.l    #3,d0
  1964.     lea    2(a0),a0
  1965.     move.b    d1,0(a0,d0.l)
  1966. ;                  
  1967.     bra    L687
  1968. L685
  1969. ;                  texImage->Data[pixel*4+0] = (GLi
  1970.     fmul.s    #$.437F0000,fp0
  1971.     fmove.l    fp0,d0
  1972.     move.b    d0,d1
  1973.     move.l    d2,d0
  1974.     moveq    #2,d3
  1975.     asl.l    d3,d0
  1976.     move.l    $34(a2),a0
  1977.     move.b    d1,0(a0,d0.l)
  1978. ;                  texImage->Data[pixel*4+1] = (GLi
  1979.     fmove.x    fp4,fp0
  1980.     fmul.s    #$.437F0000,fp0
  1981.     fmove.l    fp0,d0
  1982.     move.b    d0,d1
  1983.     move.l    $34(a2),a0
  1984.     move.l    d2,d0
  1985.     moveq    #2,d3
  1986.     asl.l    d3,d0
  1987.     lea    1(a0),a0
  1988.     move.b    d1,0(a0,d0.l)
  1989. ;                  texImage->Data[pixel*4+2] = (GLi
  1990.     fmove.x    fp3,fp0
  1991.     fmul.s    #$.437F0000,fp0
  1992.     fmove.l    fp0,d0
  1993.     move.b    d0,d1
  1994.     move.l    $34(a2),a0
  1995.     move.l    d2,d0
  1996.     moveq    #2,d3
  1997.     asl.l    d3,d0
  1998.     lea    2(a0),a0
  1999.     move.b    d1,0(a0,d0.l)
  2000. ;                  texImage->Data[pixel*4+3] = (GLi
  2001.     fmove.x    fp2,fp0
  2002.     fmul.s    #$.437F0000,fp0
  2003.     fmove.l    fp0,d0
  2004.     move.b    d0,d1
  2005.     move.l    $34(a2),a0
  2006.     move.l    d2,d0
  2007.     moveq    #2,d3
  2008.     asl.l    d3,d0
  2009.     lea    3(a0),a0
  2010.     move.b    d1,0(a0,d0.l)
  2011. ;                  
  2012.     bra.b    L687
  2013. L686
  2014. ;                  gl_problem(ctx,"Bad format (5) i
  2015.     move.l    #L522,-(a7)
  2016.     move.l    a4,-(a7)
  2017.     jsr    _gl_problem
  2018.     addq.w    #$8,a7
  2019.     moveq    #0,d0
  2020.     fmovem.x (a7)+,fp2/fp3/fp4
  2021.     movem.l    (a7)+,d2-d7/a2-a4
  2022.     unlk    a5
  2023.     rts
  2024. L687
  2025.     addq.l    #1,d2
  2026. L688
  2027.     cmp.l    -$C(a5),d2
  2028.     blt    L632
  2029. L689
  2030. ;                  return 
  2031. ;         
  2032.     bra.b    L691
  2033. L690
  2034. ;         gl_problem(ctx, "Bad image type in image_to_textur
  2035.     move.l    #L523,-(a7)
  2036.     move.l    a4,-(a7)
  2037.     jsr    _gl_problem
  2038.     addq.w    #$8,a7
  2039.     moveq    #0,d0
  2040.     fmovem.x (a7)+,fp2/fp3/fp4
  2041.     movem.l    (a7)+,d2-d7/a2-a4
  2042.     unlk    a5
  2043.     rts
  2044. L691
  2045. ;         return 
  2046.     move.l    a2,d0
  2047.     fmovem.x (a7)+,fp2/fp3/fp4
  2048.     movem.l    (a7)+,d2-d7/a2-a4
  2049.     unlk    a5
  2050.     rts
  2051.  
  2052. L519
  2053.     dc.b    'Bad format (2) in image_to_texture',0
  2054. L520
  2055.     dc.b    'Bad format (3) in image_to_texture',0
  2056. L521
  2057.     dc.b    'Bad format (4) in image_to_texture',0
  2058. L522
  2059.     dc.b    'Bad format (5) in image_to_texture',0
  2060. L518
  2061.     dc.b    'Bad format in image_to_texture',0
  2062. L523
  2063.     dc.b    'Bad image type in image_to_texture',0
  2064.  
  2065.     SECTION "_make_null_texture:0",CODE
  2066.  
  2067.  
  2068. ;static struct gl_texture_image *
  2069. _make_null_texture
  2070. L737    EQU    -$126
  2071.     link    a5,#L737
  2072.     movem.l    d2-d7/a2/a3,-(a7)
  2073.     movem.l    $18(a5),d4/d6
  2074.     move.l    $10(a5),d5
  2075.     move.l    $C(a5),d7
  2076. L712
  2077. ;   (void) ctx;
  2078. ;   components = components_in_intformat(internalFormat);
  2079.     move.l    d7,-(a7)
  2080.     jsr    _components_in_intformat
  2081.     addq.w    #4,a7
  2082.     move.l    d0,d3
  2083. ;   numPixels = width * height * depth;
  2084.     move.l    d5,d2
  2085.     muls.l    $14(a5),d2
  2086.     muls.l    d4,d2
  2087. ;   texImage = gl_alloc_texture_image();
  2088.     jsr    _gl_alloc_texture_image
  2089.     move.l    d0,a2
  2090. ;   if (!texImage)
  2091.     cmp.w    #0,a2
  2092.     bne.b    L714
  2093. L713
  2094.     moveq    #0,d0
  2095.     movem.l    (a7)+,d2-d7/a2/a3
  2096.     unlk    a5
  2097.     rts
  2098. L714
  2099. ;   texImage->Format = (GLenum) decode_internal_format(internalFor
  2100.     move.l    d7,-(a7)
  2101.     jsr    _decode_internal_format
  2102.     addq.w    #4,a7
  2103.     move.l    d0,(a2)
  2104. ;   texImage->IntFormat = internalFormat;
  2105.     move.l    d7,4(a2)
  2106. ;   texImage->Border = border;
  2107.     move.l    d6,$8(a2)
  2108. ;   texImage->Width = width;
  2109.     move.l    d5,$C(a2)
  2110. ;   texImage->Height = height;
  2111.     move.l    $14(a5),$10(a2)
  2112. ;   texImage->Depth = depth;
  2113.     move.l    d4,$14(a2)
  2114. ;   texImage->WidthLog2 = logbase2(width - 2*border);
  2115.     move.l    d6,d0
  2116.     moveq    #1,d1
  2117.     asl.l    d1,d0
  2118.     move.l    d5,d1
  2119.     sub.l    d0,d1
  2120.     move.l    d1,-(a7)
  2121.     jsr    _logbase2
  2122.     addq.w    #4,a7
  2123.     move.l    d0,$24(a2)
  2124. ;   if (height==1)  /* 1-D texture */
  2125.     move.l    $14(a5),d0
  2126.     cmp.l    #1,d0
  2127.     bne.b    L716
  2128. L715
  2129. ;      texImage->HeightLog2 = 0;
  2130.     clr.l    $28(a2)
  2131.     bra.b    L717
  2132. L716
  2133. ;      texImage->HeightLog2 = logbase2(height - 2*border);
  2134.     move.l    d6,d0
  2135.     moveq    #1,d1
  2136.     asl.l    d1,d0
  2137.     move.l    $14(a5),d1
  2138.     sub.l    d0,d1
  2139.     move.l    d1,-(a7)
  2140.     jsr    _logbase2
  2141.     addq.w    #4,a7
  2142.     move.l    d0,$28(a2)
  2143. L717
  2144. ;   if (depth==1)   /* 2-D texture */
  2145.     cmp.l    #1,d4
  2146.     bne.b    L719
  2147. L718
  2148. ;      texImage->DepthLog2 = 0;
  2149.     clr.l    $2C(a2)
  2150.     bra.b    L720
  2151. L719
  2152. ;      texImage->DepthLog2 = logbase2(depth - 2*border);
  2153.     move.l    d6,d0
  2154.     moveq    #1,d1
  2155.     asl.l    d1,d0
  2156.     sub.l    d0,d4
  2157.     move.l    d4,-(a7)
  2158.     jsr    _logbase2
  2159.     addq.w    #4,a7
  2160.     move.l    d0,$2C(a2)
  2161. L720
  2162. ;   texImage->Width2 = 1 << texImage->WidthLog2;
  2163.     moveq    #1,d0
  2164.     move.l    $24(a2),d1
  2165.     asl.l    d1,d0
  2166.     move.l    d0,$18(a2)
  2167. ;   texImage->Height2 = 1 << texImage->HeightLog2;
  2168.     moveq    #1,d0
  2169.     move.l    $28(a2),d1
  2170.     asl.l    d1,d0
  2171.     move.l    d0,$1C(a2)
  2172. ;   texImage->Depth2 = 1 << texImage->DepthLog2;
  2173.     moveq    #1,d0
  2174.     move.l    $2C(a2),d1
  2175.     asl.l    d1,d0
  2176.     move.l    d0,$20(a2)
  2177. ;   texImage->MaxLog2 = MAX2( texImage->WidthLog2, texImage->Heigh
  2178.     move.l    $24(a2),d1
  2179.     cmp.l    $28(a2),d1
  2180.     bls.b    L722
  2181. L721
  2182.     move.l    $24(a2),d0
  2183.     bra.b    L723
  2184. L722
  2185.     move.l    $28(a2),d0
  2186. L723
  2187.     move.l    d0,$30(a2)
  2188. ;   texImage->Data = (GLubyte *) malloc( numPixels * components );
  2189.     muls.l    d3,d2
  2190.     move.l    d2,-(a7)
  2191.     jsr    _malloc
  2192.     addq.w    #4,a7
  2193.     move.l    d0,$34(a2)
  2194. ;   if (texImage->Data) 
  2195.     tst.l    $34(a2)
  2196.     beq    L736
  2197. L724
  2198. ;      char message[8][32] = {
  2199.     lea    -$10C(a5),a0
  2200.     move.l    #L704,a3
  2201.     move.l    a0,a1
  2202.     moveq    #7,d0
  2203. L738
  2204.     move.l    (a3)+,(a1)+
  2205.     dbra    d0,L738
  2206.     add.w    #$20,a0
  2207.     move.l    #L705,a3
  2208.     move.l    a0,a1
  2209.     moveq    #7,d0
  2210. L739
  2211.     move.l    (a3)+,(a1)+
  2212.     dbra    d0,L739
  2213.     add.w    #$20,a0
  2214.     move.l    #L706,a3
  2215.     move.l    a0,a1
  2216.     moveq    #7,d0
  2217. L740
  2218.     move.l    (a3)+,(a1)+
  2219.     dbra    d0,L740
  2220.     add.w    #$20,a0
  2221.     move.l    #L707,a3
  2222.     move.l    a0,a1
  2223.     moveq    #7,d0
  2224. L741
  2225.     move.l    (a3)+,(a1)+
  2226.     dbra    d0,L741
  2227.     add.w    #$20,a0
  2228.     move.l    #L708,a3
  2229.     move.l    a0,a1
  2230.     moveq    #7,d0
  2231. L742
  2232.     move.l    (a3)+,(a1)+
  2233.     dbra    d0,L742
  2234.     add.w    #$20,a0
  2235.     move.l    #L709,a3
  2236.     move.l    a0,a1
  2237.     moveq    #7,d0
  2238. L743
  2239.     move.l    (a3)+,(a1)+
  2240.     dbra    d0,L743
  2241.     add.w    #$20,a0
  2242.     move.l    #L710,a3
  2243.     move.l    a0,a1
  2244.     moveq    #7,d0
  2245. L744
  2246.     move.l    (a3)+,(a1)+
  2247.     dbra    d0,L744
  2248.     move.l    #L711,a1
  2249.     add.w    #$20,a0
  2250.     moveq    #7,d0
  2251. L745
  2252.     move.l    (a1)+,(a0)+
  2253.     dbra    d0,L745
  2254. ;      GLubyte *imgPtr = texImage->Data;
  2255.     move.l    $34(a2),a0
  2256. ;      for (i=0;
  2257.     moveq    #0,d7
  2258.     bra.b    L735
  2259. L725
  2260. ;         GLint srcRow = 7 - i % 8;
  2261.     move.l    d7,d0
  2262.     divsl.l    #$8,d1:d0
  2263.     moveq    #7,d4
  2264.     sub.l    d1,d4
  2265. ;         for (j=0;
  2266.     moveq    #0,d2
  2267.     bra.b    L733
  2268. L726
  2269. ;            GLint srcCol = j % 32;
  2270.     move.l    d2,d0
  2271.     divsl.l    #$20,d1:d0
  2272.     move.l    d1,d0
  2273. ;            GLubyte texel = (message[srcRow][srcCol]=='X
  2274.     lea    -$10C(a5),a1
  2275.     move.l    d4,d1
  2276.     asl.l    #5,d1
  2277.     lea    0(a1,d1.l),a1
  2278.     move.b    0(a1,d0.l),d0
  2279.     cmp.b    #$58,d0
  2280.     bne.b    L728
  2281. L727
  2282.     move.l    #$FF,d0
  2283.     bra.b    L729
  2284. L728
  2285.     moveq    #$46,d0
  2286. L729
  2287.     move.b    d0,d1
  2288. ;            for (k=0;
  2289.     moveq    #0,d0
  2290.     bra.b    L731
  2291. L730
  2292. ;               *imgPtr++ = texel;
  2293.     move.b    d1,(a0)+
  2294.     addq.l    #1,d0
  2295. L731
  2296.     cmp.l    d3,d0
  2297.     blt.b    L730
  2298. L732
  2299.     addq.l    #1,d2
  2300. L733
  2301.     cmp.l    d5,d2
  2302.     blt.b    L726
  2303. L734
  2304.     move.l    d7,d0
  2305.     addq.l    #1,d0
  2306.     move.l    d0,d7
  2307. L735
  2308.     move.l    d7,d0
  2309.     cmp.l    $14(a5),d0
  2310.     blt.b    L725
  2311. L736
  2312.     move.l    a2,d0
  2313.     movem.l    (a7)+,d2-d7/a2/a3
  2314.     unlk    a5
  2315.     rts
  2316.  
  2317. L711
  2318.     dc.b    '                               ',0
  2319. L708
  2320.     dc.b    '   X   X  X          X  X   X  ',0
  2321. L709
  2322.     dc.b    '   X   X  X      X   X  X   X  ',0
  2323. L707
  2324.     dc.b    '   X   X  XXXX    XXX   XXXXX  ',0
  2325. L704
  2326.     dc.b    '   X   X  XXXXX   XXX     X    ',0
  2327. L710
  2328.     dc.b    '   X   X  XXXXX   XXX   X   X  ',0
  2329. L706
  2330.     dc.b    '   X X X  X      X      X   X  ',0
  2331. L705
  2332.     dc.b    '   XX XX  X      X   X   X X   ',0
  2333.  
  2334.     SECTION "_texture_1d_error_check:0",CODE
  2335.  
  2336.  
  2337. ;static GLboolean texture_1d_error_check( GLcontext *ctx, GLenum targ
  2338. _texture_1d_error_check
  2339.     movem.l    d2-d6/a2,-(a7)
  2340.     movem.l    $24(a7),d0/d1/d6
  2341.     movem.l    $34(a7),d2/d3
  2342.     move.l    $20(a7),d4
  2343.     move.l    $30(a7),d5
  2344.     move.l    $1C(a7),a2
  2345. L754
  2346. ;   if (target!=GL_TEXTURE_1D && target!=GL_PROXY_TEXTURE_1D) 
  2347.     cmp.l    #$DE0,d4
  2348.     beq.b    L757
  2349. L755
  2350.     cmp.l    #$8063,d4
  2351.     beq.b    L757
  2352. L756
  2353. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexImage1D" );
  2354.     move.l    #L746,-(a7)
  2355.     pea    $500.w
  2356.     move.l    a2,-(a7)
  2357.     jsr    _gl_error
  2358.     add.w    #$C,a7
  2359.     moveq    #1,d0
  2360.     movem.l    (a7)+,d2-d6/a2
  2361.     rts
  2362. L757
  2363. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  2364.     tst.l    d0
  2365.     bmi.b    L759
  2366. L758
  2367.     cmp.l    #$B,d0
  2368.     blt.b    L760
  2369. L759
  2370. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexImage1D(level)" );
  2371.     move.l    #L747,-(a7)
  2372.     pea    $501.w
  2373.     move.l    a2,-(a7)
  2374.     jsr    _gl_error
  2375.     add.w    #$C,a7
  2376.     moveq    #1,d0
  2377.     movem.l    (a7)+,d2-d6/a2
  2378.     rts
  2379. L760
  2380. ;   iformat = decode_internal_format( internalFormat );
  2381.     move.l    d1,-(a7)
  2382.     jsr    _decode_internal_format
  2383.     addq.w    #4,a7
  2384. ;   if (iformat<0) 
  2385.     tst.l    d0
  2386.     bpl.b    L762
  2387. L761
  2388. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexImage1D(internalF
  2389.     move.l    #L748,-(a7)
  2390.     pea    $501.w
  2391.     move.l    a2,-(a7)
  2392.     jsr    _gl_error
  2393.     add.w    #$C,a7
  2394.     moveq    #1,d0
  2395.     movem.l    (a7)+,d2-d6/a2
  2396.     rts
  2397. L762
  2398. ;   if (border!=0 && border!=1) 
  2399.     tst.l    d3
  2400.     beq.b    L767
  2401. L763
  2402.     cmp.l    #1,d3
  2403.     beq.b    L767
  2404. L764
  2405. ;      if (target!=GL_PROXY_TEXTURE_1D) 
  2406.     cmp.l    #$8063,d4
  2407.     beq.b    L766
  2408. L765
  2409. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexImage1D(bor
  2410.     move.l    #L749,-(a7)
  2411.     pea    $501.w
  2412.     move.l    a2,-(a7)
  2413.     jsr    _gl_error
  2414.     add.w    #$C,a7
  2415. L766
  2416.     moveq    #1,d0
  2417.     movem.l    (a7)+,d2-d6/a2
  2418.     rts
  2419. L767
  2420. ;   if (width<2*border || width>2+MAX_TEXTURE_SIZE) 
  2421.     move.l    d3,d0
  2422.     moveq    #1,d1
  2423.     asl.l    d1,d0
  2424.     cmp.l    d0,d2
  2425.     blt.b    L769
  2426. L768
  2427.     cmp.l    #$402,d2
  2428.     ble.b    L772
  2429. L769
  2430. ;      if (target!=GL_PROXY_TEXTURE_1D) 
  2431.     cmp.l    #$8063,d4
  2432.     beq.b    L771
  2433. L770
  2434. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexImage1D(wid
  2435.     move.l    #L750,-(a7)
  2436.     pea    $501.w
  2437.     move.l    a2,-(a7)
  2438.     jsr    _gl_error
  2439.     add.w    #$C,a7
  2440. L771
  2441.     moveq    #1,d0
  2442.     movem.l    (a7)+,d2-d6/a2
  2443.     rts
  2444. L772
  2445. ;   if (logbase2( width-2*border )<0) 
  2446.     move.l    d3,d0
  2447.     moveq    #1,d3
  2448.     asl.l    d3,d0
  2449.     sub.l    d0,d2
  2450.     move.l    d2,-(a7)
  2451.     jsr    _logbase2
  2452.     addq.w    #4,a7
  2453.     tst.l    d0
  2454.     bpl.b    L774
  2455. L773
  2456. ;      gl_error( ctx, GL_INVALID_VALUE,
  2457.     move.l    #L751,-(a7)
  2458.     pea    $501.w
  2459.     move.l    a2,-(a7)
  2460.     jsr    _gl_error
  2461.     add.w    #$C,a7
  2462.     moveq    #1,d0
  2463.     movem.l    (a7)+,d2-d6/a2
  2464.     rts
  2465. L774
  2466. ;   switch (format)
  2467.     move.l    d6,d0
  2468.     cmp.l    #$1907,d0
  2469.     beq.b    L775
  2470.     bgt.b    L781
  2471.     cmp.l    #$1904,d0
  2472.     beq.b    L775
  2473.     bgt.b    L782
  2474.     cmp.l    #$1900,d0
  2475.     beq.b    L775
  2476.     cmp.l    #$1903,d0
  2477.     beq.b    L775
  2478.     bra.b    L776
  2479. L782
  2480.     cmp.l    #$1905,d0
  2481.     beq.b    L775
  2482.     cmp.l    #$1906,d0
  2483.     beq.b    L775
  2484.     bra.b    L776
  2485. L781
  2486.     cmp.l    #$190A,d0
  2487.     beq.b    L775
  2488.     bgt.b    L783
  2489.     cmp.l    #$1908,d0
  2490.     beq.b    L775
  2491.     cmp.l    #$1909,d0
  2492.     beq.b    L775
  2493.     bra.b    L776
  2494. L783
  2495.     cmp.l    #$8000,d0
  2496.     beq.b    L775
  2497.     bra.b    L776
  2498. ;      
  2499. L775
  2500. ;         
  2501.     bra.b    L777
  2502. L776
  2503. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexImage1D(form
  2504.     move.l    #L752,-(a7)
  2505.     pea    $500.w
  2506.     move.l    a2,-(a7)
  2507.     jsr    _gl_error
  2508.     add.w    #$C,a7
  2509.     moveq    #1,d0
  2510.     movem.l    (a7)+,d2-d6/a2
  2511.     rts
  2512. L777
  2513. ;         return 
  2514. ;   switch (type)
  2515.     sub.l    #$1400,d5
  2516.     cmp.l    #6,d5
  2517.     bhi.b    L779
  2518.     move.l    L784(pc,d5.l*4),a0
  2519.     jmp    (a0)
  2520. L784
  2521.     dc.l    L778
  2522.     dc.l    L778
  2523.     dc.l    L778
  2524.     dc.l    L778
  2525.     dc.l    L778
  2526.     dc.l    L778
  2527.     dc.l    L778
  2528. ;      
  2529. L778
  2530. ;         
  2531.     bra.b    L780
  2532. L779
  2533. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexImage1D(type)
  2534.     move.l    #L753,-(a7)
  2535.     pea    $500.w
  2536.     move.l    a2,-(a7)
  2537.     jsr    _gl_error
  2538.     add.w    #$C,a7
  2539.     moveq    #1,d0
  2540.     movem.l    (a7)+,d2-d6/a2
  2541.     rts
  2542. L780
  2543. ;         return 
  2544.     moveq    #0,d0
  2545.     movem.l    (a7)+,d2-d6/a2
  2546.     rts
  2547.  
  2548. L746
  2549.     dc.b    'glTexImage1D',0
  2550. L749
  2551.     dc.b    'glTexImage1D(border)',0
  2552. L752
  2553.     dc.b    'glTexImage1D(format)',0
  2554. L748
  2555.     dc.b    'glTexImage1D(internalFormat)',0
  2556. L747
  2557.     dc.b    'glTexImage1D(level)',0
  2558. L753
  2559.     dc.b    'glTexImage1D(type)',0
  2560. L751
  2561.     dc.b    'glTexImage1D(width != 2^k + 2*border)',0
  2562. L750
  2563.     dc.b    'glTexImage1D(width)',0
  2564.  
  2565.     SECTION "_texture_2d_error_check:0",CODE
  2566.  
  2567.  
  2568. ;static GLboolean texture_2d_error_check( GLcontext *ctx, GLenum targ
  2569. _texture_2d_error_check
  2570.     movem.l    d2-d7/a2,-(a7)
  2571.     movem.l    $28(a7),d0/d1/d7
  2572.     move.l    $40(a7),d2
  2573.     move.l    $3C(a7),d3
  2574.     move.l    $38(a7),d4
  2575.     move.l    $24(a7),d5
  2576.     move.l    $34(a7),d6
  2577.     move.l    $20(a7),a2
  2578. L795
  2579. ;   if (target!=GL_TEXTURE_2D && target!=GL_PROXY_TEXTURE_2D) 
  2580.     cmp.l    #$DE1,d5
  2581.     beq.b    L798
  2582. L796
  2583.     cmp.l    #$8064,d5
  2584.     beq.b    L798
  2585. L797
  2586. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexImage2D(target)" );
  2587.     move.l    #L785,-(a7)
  2588.     pea    $500.w
  2589.     move.l    a2,-(a7)
  2590.     jsr    _gl_error
  2591.     add.w    #$C,a7
  2592.     moveq    #1,d0
  2593.     movem.l    (a7)+,d2-d7/a2
  2594.     rts
  2595. L798
  2596. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  2597.     tst.l    d0
  2598.     bmi.b    L800
  2599. L799
  2600.     cmp.l    #$B,d0
  2601.     blt.b    L801
  2602. L800
  2603. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(level)" );
  2604.     move.l    #L786,-(a7)
  2605.     pea    $501.w
  2606.     move.l    a2,-(a7)
  2607.     jsr    _gl_error
  2608.     add.w    #$C,a7
  2609.     moveq    #1,d0
  2610.     movem.l    (a7)+,d2-d7/a2
  2611.     rts
  2612. L801
  2613. ;   iformat = decode_internal_format( internalFormat );
  2614.     move.l    d1,-(a7)
  2615.     jsr    _decode_internal_format
  2616.     addq.w    #4,a7
  2617. ;   if (iformat<0) 
  2618.     tst.l    d0
  2619.     bpl.b    L803
  2620. L802
  2621. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(internalF
  2622.     move.l    #L787,-(a7)
  2623.     pea    $501.w
  2624.     move.l    a2,-(a7)
  2625.     jsr    _gl_error
  2626.     add.w    #$C,a7
  2627.     moveq    #1,d0
  2628.     movem.l    (a7)+,d2-d7/a2
  2629.     rts
  2630. L803
  2631. ;   if (border!=0 && border!=1) 
  2632.     tst.l    d2
  2633.     beq.b    L808
  2634. L804
  2635.     cmp.l    #1,d2
  2636.     beq.b    L808
  2637. L805
  2638. ;      if (target!=GL_PROXY_TEXTURE_2D) 
  2639.     cmp.l    #$8064,d5
  2640.     beq.b    L807
  2641. L806
  2642. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(bor
  2643.     move.l    #L788,-(a7)
  2644.     pea    $501.w
  2645.     move.l    a2,-(a7)
  2646.     jsr    _gl_error
  2647.     add.w    #$C,a7
  2648. L807
  2649.     moveq    #1,d0
  2650.     movem.l    (a7)+,d2-d7/a2
  2651.     rts
  2652. L808
  2653. ;   if (width<2*border || width>2+MAX_TEXTURE_SIZE) 
  2654.     move.l    d2,d0
  2655.     moveq    #1,d1
  2656.     asl.l    d1,d0
  2657.     cmp.l    d0,d4
  2658.     blt.b    L810
  2659. L809
  2660.     cmp.l    #$402,d4
  2661.     ble.b    L813
  2662. L810
  2663. ;      if (target!=GL_PROXY_TEXTURE_2D) 
  2664.     cmp.l    #$8064,d5
  2665.     beq.b    L812
  2666. L811
  2667. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(wid
  2668.     move.l    #L789,-(a7)
  2669.     pea    $501.w
  2670.     move.l    a2,-(a7)
  2671.     jsr    _gl_error
  2672.     add.w    #$C,a7
  2673. L812
  2674.     moveq    #1,d0
  2675.     movem.l    (a7)+,d2-d7/a2
  2676.     rts
  2677. L813
  2678. ;   if (height<2*border || height>2+MAX_TEXTURE_SIZE) 
  2679.     move.l    d2,d0
  2680.     moveq    #1,d1
  2681.     asl.l    d1,d0
  2682.     cmp.l    d0,d3
  2683.     blt.b    L815
  2684. L814
  2685.     cmp.l    #$402,d3
  2686.     ble.b    L818
  2687. L815
  2688. ;      if (target!=GL_PROXY_TEXTURE_2D) 
  2689.     cmp.l    #$8064,d5
  2690.     beq.b    L817
  2691. L816
  2692. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(hei
  2693.     move.l    #L790,-(a7)
  2694.     pea    $501.w
  2695.     move.l    a2,-(a7)
  2696.     jsr    _gl_error
  2697.     add.w    #$C,a7
  2698. L817
  2699.     moveq    #1,d0
  2700.     movem.l    (a7)+,d2-d7/a2
  2701.     rts
  2702. L818
  2703. ;   if (logbase2( width-2*border )<0) 
  2704.     move.l    d2,d0
  2705.     moveq    #1,d1
  2706.     asl.l    d1,d0
  2707.     sub.l    d0,d4
  2708.     move.l    d4,-(a7)
  2709.     jsr    _logbase2
  2710.     addq.w    #4,a7
  2711.     tst.l    d0
  2712.     bpl.b    L820
  2713. L819
  2714. ;      gl_error( ctx,GL_INVALID_VALUE,
  2715.     move.l    #L791,-(a7)
  2716.     pea    $501.w
  2717.     move.l    a2,-(a7)
  2718.     jsr    _gl_error
  2719.     add.w    #$C,a7
  2720.     moveq    #1,d0
  2721.     movem.l    (a7)+,d2-d7/a2
  2722.     rts
  2723. L820
  2724. ;   if (logbase2( height-2*border )<0) 
  2725.     move.l    d2,d0
  2726.     moveq    #1,d2
  2727.     asl.l    d2,d0
  2728.     sub.l    d0,d3
  2729.     move.l    d3,-(a7)
  2730.     jsr    _logbase2
  2731.     addq.w    #4,a7
  2732.     tst.l    d0
  2733.     bpl.b    L822
  2734. L821
  2735. ;      gl_error( ctx,GL_INVALID_VALUE,
  2736.     move.l    #L792,-(a7)
  2737.     pea    $501.w
  2738.     move.l    a2,-(a7)
  2739.     jsr    _gl_error
  2740.     add.w    #$C,a7
  2741.     moveq    #1,d0
  2742.     movem.l    (a7)+,d2-d7/a2
  2743.     rts
  2744. L822
  2745. ;   switch (format)
  2746.     move.l    d7,d0
  2747.     cmp.l    #$1907,d0
  2748.     beq.b    L823
  2749.     bgt.b    L829
  2750.     cmp.l    #$1904,d0
  2751.     beq.b    L823
  2752.     bgt.b    L830
  2753.     cmp.l    #$1900,d0
  2754.     beq.b    L823
  2755.     cmp.l    #$1903,d0
  2756.     beq.b    L823
  2757.     bra.b    L824
  2758. L830
  2759.     cmp.l    #$1905,d0
  2760.     beq.b    L823
  2761.     cmp.l    #$1906,d0
  2762.     beq.b    L823
  2763.     bra.b    L824
  2764. L829
  2765.     cmp.l    #$190A,d0
  2766.     beq.b    L823
  2767.     bgt.b    L831
  2768.     cmp.l    #$1908,d0
  2769.     beq.b    L823
  2770.     cmp.l    #$1909,d0
  2771.     beq.b    L823
  2772.     bra.b    L824
  2773. L831
  2774.     cmp.l    #$8000,d0
  2775.     beq.b    L823
  2776.     bra.b    L824
  2777. ;      
  2778. L823
  2779. ;         
  2780.     bra.b    L825
  2781. L824
  2782. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexImage2D(form
  2783.     move.l    #L793,-(a7)
  2784.     pea    $500.w
  2785.     move.l    a2,-(a7)
  2786.     jsr    _gl_error
  2787.     add.w    #$C,a7
  2788.     moveq    #1,d0
  2789.     movem.l    (a7)+,d2-d7/a2
  2790.     rts
  2791. L825
  2792. ;         return 
  2793. ;   switch (type)
  2794.     move.l    d6,d0
  2795.     sub.l    #$1400,d0
  2796.     cmp.l    #6,d0
  2797.     bhi.b    L827
  2798.     move.l    L832(pc,d0.l*4),a0
  2799.     jmp    (a0)
  2800. L832
  2801.     dc.l    L826
  2802.     dc.l    L826
  2803.     dc.l    L826
  2804.     dc.l    L826
  2805.     dc.l    L826
  2806.     dc.l    L826
  2807.     dc.l    L826
  2808. ;      
  2809. L826
  2810. ;         
  2811.     bra.b    L828
  2812. L827
  2813. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexImage2D(type)
  2814.     move.l    #L794,-(a7)
  2815.     pea    $500.w
  2816.     move.l    a2,-(a7)
  2817.     jsr    _gl_error
  2818.     add.w    #$C,a7
  2819.     moveq    #1,d0
  2820.     movem.l    (a7)+,d2-d7/a2
  2821.     rts
  2822. L828
  2823. ;         return 
  2824.     moveq    #0,d0
  2825.     movem.l    (a7)+,d2-d7/a2
  2826.     rts
  2827.  
  2828. L788
  2829.     dc.b    'glTexImage2D(border)',0
  2830. L793
  2831.     dc.b    'glTexImage2D(format)',0
  2832. L792
  2833.     dc.b    'glTexImage2D(height != 2^k + 2*border)',0
  2834. L790
  2835.     dc.b    'glTexImage2D(height)',0
  2836. L787
  2837.     dc.b    'glTexImage2D(internalFormat)',0
  2838. L786
  2839.     dc.b    'glTexImage2D(level)',0
  2840. L785
  2841.     dc.b    'glTexImage2D(target)',0
  2842. L794
  2843.     dc.b    'glTexImage2D(type)',0
  2844. L791
  2845.     dc.b    'glTexImage2D(width != 2^k + 2*border)',0
  2846. L789
  2847.     dc.b    'glTexImage2D(width)',0
  2848.  
  2849.     SECTION "_texture_3d_error_check:0",CODE
  2850.  
  2851.  
  2852. ;static GLboolean texture_3d_error_check( GLcontext *ctx, GLenum targ
  2853. _texture_3d_error_check
  2854. L886    EQU    -4
  2855.     link    a5,#L886
  2856.     movem.l    d2-d7/a2,-(a7)
  2857.     movem.l    $10(a5),d0/d1
  2858.     move.l    $2C(a5),d2
  2859.     move.l    $C(a5),d3
  2860.     move.l    $28(a5),d4
  2861.     move.l    $24(a5),d5
  2862.     move.l    $20(a5),d6
  2863.     move.l    $1C(a5),d7
  2864.     move.l    $8(a5),a2
  2865. L845
  2866. ;   if (target!=GL_TEXTURE_3D_EXT && target!=GL_PROXY_TEXTURE_3D_E
  2867.     cmp.l    #$806F,d3
  2868.     beq.b    L848
  2869. L846
  2870.     cmp.l    #$8070,d3
  2871.     beq.b    L848
  2872. L847
  2873. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexImage3DEXT(target)
  2874.     move.l    #L833,-(a7)
  2875.     pea    $500.w
  2876.     move.l    a2,-(a7)
  2877.     jsr    _gl_error
  2878.     add.w    #$C,a7
  2879.     moveq    #1,d0
  2880.     movem.l    (a7)+,d2-d7/a2
  2881.     unlk    a5
  2882.     rts
  2883. L848
  2884. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  2885.     tst.l    d0
  2886.     bmi.b    L850
  2887. L849
  2888.     cmp.l    #$B,d0
  2889.     blt.b    L851
  2890. L850
  2891. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(level)
  2892.     move.l    #L834,-(a7)
  2893.     pea    $501.w
  2894.     move.l    a2,-(a7)
  2895.     jsr    _gl_error
  2896.     add.w    #$C,a7
  2897.     moveq    #1,d0
  2898.     movem.l    (a7)+,d2-d7/a2
  2899.     unlk    a5
  2900.     rts
  2901. L851
  2902. ;   iformat = decode_internal_format( internalFormat );
  2903.     move.l    d1,-(a7)
  2904.     jsr    _decode_internal_format
  2905.     addq.w    #4,a7
  2906. ;   if (iformat<0) 
  2907.     tst.l    d0
  2908.     bpl.b    L853
  2909. L852
  2910. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(intern
  2911.     move.l    #L835,-(a7)
  2912.     pea    $501.w
  2913.     move.l    a2,-(a7)
  2914.     jsr    _gl_error
  2915.     add.w    #$C,a7
  2916.     moveq    #1,d0
  2917.     movem.l    (a7)+,d2-d7/a2
  2918.     unlk    a5
  2919.     rts
  2920. L853
  2921. ;   if (border!=0 && border!=1) 
  2922.     tst.l    d2
  2923.     beq.b    L858
  2924. L854
  2925.     cmp.l    #1,d2
  2926.     beq.b    L858
  2927. L855
  2928. ;      if (target!=GL_PROXY_TEXTURE_3D_EXT) 
  2929.     cmp.l    #$8070,d3
  2930.     beq.b    L857
  2931. L856
  2932. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(
  2933.     move.l    #L836,-(a7)
  2934.     pea    $501.w
  2935.     move.l    a2,-(a7)
  2936.     jsr    _gl_error
  2937.     add.w    #$C,a7
  2938. L857
  2939.     moveq    #1,d0
  2940.     movem.l    (a7)+,d2-d7/a2
  2941.     unlk    a5
  2942.     rts
  2943. L858
  2944. ;   if (width<2*border || width>2+MAX_TEXTURE_SIZE) 
  2945.     move.l    d2,d0
  2946.     moveq    #1,d1
  2947.     asl.l    d1,d0
  2948.     move.l    d6,d1
  2949.     cmp.l    d0,d1
  2950.     blt.b    L860
  2951. L859
  2952.     move.l    d6,d0
  2953.     cmp.l    #$402,d0
  2954.     ble.b    L863
  2955. L860
  2956. ;      if (target!=GL_PROXY_TEXTURE_3D_EXT) 
  2957.     cmp.l    #$8070,d3
  2958.     beq.b    L862
  2959. L861
  2960. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(
  2961.     move.l    #L837,-(a7)
  2962.     pea    $501.w
  2963.     move.l    a2,-(a7)
  2964.     jsr    _gl_error
  2965.     add.w    #$C,a7
  2966. L862
  2967.     moveq    #1,d0
  2968.     movem.l    (a7)+,d2-d7/a2
  2969.     unlk    a5
  2970.     rts
  2971. L863
  2972. ;   if (height<2*border || height>2+MAX_TEXTURE_SIZE) 
  2973.     move.l    d2,d0
  2974.     moveq    #1,d1
  2975.     asl.l    d1,d0
  2976.     cmp.l    d0,d5
  2977.     blt.b    L865
  2978. L864
  2979.     cmp.l    #$402,d5
  2980.     ble.b    L868
  2981. L865
  2982. ;      if (target!=GL_PROXY_TEXTURE_3D_EXT) 
  2983.     cmp.l    #$8070,d3
  2984.     beq.b    L867
  2985. L866
  2986. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(
  2987.     move.l    #L838,-(a7)
  2988.     pea    $501.w
  2989.     move.l    a2,-(a7)
  2990.     jsr    _gl_error
  2991.     add.w    #$C,a7
  2992. L867
  2993.     moveq    #1,d0
  2994.     movem.l    (a7)+,d2-d7/a2
  2995.     unlk    a5
  2996.     rts
  2997. L868
  2998. ;   if (depth<2*border || depth>2+MAX_TEXTURE_SIZE) 
  2999.     move.l    d2,d0
  3000.     moveq    #1,d1
  3001.     asl.l    d1,d0
  3002.     cmp.l    d0,d4
  3003.     blt.b    L870
  3004. L869
  3005.     cmp.l    #$402,d4
  3006.     ble.b    L873
  3007. L870
  3008. ;      if (target!=GL_PROXY_TEXTURE_3D_EXT) 
  3009.     cmp.l    #$8070,d3
  3010.     beq.b    L872
  3011. L871
  3012. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(
  3013.     move.l    #L839,-(a7)
  3014.     pea    $501.w
  3015.     move.l    a2,-(a7)
  3016.     jsr    _gl_error
  3017.     add.w    #$C,a7
  3018. L872
  3019.     moveq    #1,d0
  3020.     movem.l    (a7)+,d2-d7/a2
  3021.     unlk    a5
  3022.     rts
  3023. L873
  3024. ;   if (logbase2( width-2*border )<0) 
  3025.     move.l    d2,d0
  3026.     moveq    #1,d1
  3027.     asl.l    d1,d0
  3028.     move.l    d6,d1
  3029.     sub.l    d0,d1
  3030.     move.l    d1,-(a7)
  3031.     jsr    _logbase2
  3032.     addq.w    #4,a7
  3033.     tst.l    d0
  3034.     bpl.b    L875
  3035. L874
  3036. ;      gl_error( ctx,GL_INVALID_VALUE,
  3037.     move.l    #L840,-(a7)
  3038.     pea    $501.w
  3039.     move.l    a2,-(a7)
  3040.     jsr    _gl_error
  3041.     add.w    #$C,a7
  3042.     moveq    #1,d0
  3043.     movem.l    (a7)+,d2-d7/a2
  3044.     unlk    a5
  3045.     rts
  3046. L875
  3047. ;   if (logbase2( height-2*border )<0) 
  3048.     move.l    d2,d0
  3049.     moveq    #1,d1
  3050.     asl.l    d1,d0
  3051.     sub.l    d0,d5
  3052.     move.l    d5,-(a7)
  3053.     jsr    _logbase2
  3054.     addq.w    #4,a7
  3055.     tst.l    d0
  3056.     bpl.b    L877
  3057. L876
  3058. ;      gl_error( ctx,GL_INVALID_VALUE,
  3059.     move.l    #L841,-(a7)
  3060.     pea    $501.w
  3061.     move.l    a2,-(a7)
  3062.     jsr    _gl_error
  3063.     add.w    #$C,a7
  3064.     moveq    #1,d0
  3065.     movem.l    (a7)+,d2-d7/a2
  3066.     unlk    a5
  3067.     rts
  3068. L877
  3069. ;   if (logbase2( depth-2*border )<0) 
  3070.     move.l    d2,d0
  3071.     moveq    #1,d2
  3072.     asl.l    d2,d0
  3073.     sub.l    d0,d4
  3074.     move.l    d4,-(a7)
  3075.     jsr    _logbase2
  3076.     addq.w    #4,a7
  3077.     tst.l    d0
  3078.     bpl.b    L879
  3079. L878
  3080. ;      gl_error( ctx,GL_INVALID_VALUE,
  3081.     move.l    #L842,-(a7)
  3082.     pea    $501.w
  3083.     move.l    a2,-(a7)
  3084.     jsr    _gl_error
  3085.     add.w    #$C,a7
  3086.     moveq    #1,d0
  3087.     movem.l    (a7)+,d2-d7/a2
  3088.     unlk    a5
  3089.     rts
  3090. L879
  3091. ;   switch (format)
  3092.     move.l    $18(a5),d0
  3093.     cmp.l    #$1907,d0
  3094.     beq.b    L880
  3095.     bgt.b    L887
  3096.     cmp.l    #$1904,d0
  3097.     beq.b    L880
  3098.     bgt.b    L888
  3099.     cmp.l    #$1900,d0
  3100.     beq.b    L880
  3101.     cmp.l    #$1903,d0
  3102.     beq.b    L880
  3103.     bra.b    L881
  3104. L888
  3105.     cmp.l    #$1905,d0
  3106.     beq.b    L880
  3107.     cmp.l    #$1906,d0
  3108.     beq.b    L880
  3109.     bra.b    L881
  3110. L887
  3111.     cmp.l    #$190A,d0
  3112.     beq.b    L880
  3113.     bgt.b    L889
  3114.     cmp.l    #$1908,d0
  3115.     beq.b    L880
  3116.     cmp.l    #$1909,d0
  3117.     beq.b    L880
  3118.     bra.b    L881
  3119. L889
  3120.     cmp.l    #$8000,d0
  3121.     beq.b    L880
  3122.     bra.b    L881
  3123. ;      
  3124. L880
  3125. ;         
  3126.     bra.b    L882
  3127. L881
  3128. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexImage3DEXT(f
  3129.     move.l    #L843,-(a7)
  3130.     pea    $500.w
  3131.     move.l    a2,-(a7)
  3132.     jsr    _gl_error
  3133.     add.w    #$C,a7
  3134.     moveq    #1,d0
  3135.     movem.l    (a7)+,d2-d7/a2
  3136.     unlk    a5
  3137.     rts
  3138. L882
  3139. ;         return 
  3140. ;   switch (type)
  3141.     move.l    d7,d0
  3142.     sub.l    #$1400,d0
  3143.     cmp.l    #6,d0
  3144.     bhi.b    L884
  3145.     move.l    L890(pc,d0.l*4),a0
  3146.     jmp    (a0)
  3147. L890
  3148.     dc.l    L883
  3149.     dc.l    L883
  3150.     dc.l    L883
  3151.     dc.l    L883
  3152.     dc.l    L883
  3153.     dc.l    L883
  3154.     dc.l    L883
  3155. ;      
  3156. L883
  3157. ;         
  3158.     bra.b    L885
  3159. L884
  3160. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexImage3DEXT(t
  3161.     move.l    #L844,-(a7)
  3162.     pea    $500.w
  3163.     move.l    a2,-(a7)
  3164.     jsr    _gl_error
  3165.     add.w    #$C,a7
  3166.     moveq    #1,d0
  3167.     movem.l    (a7)+,d2-d7/a2
  3168.     unlk    a5
  3169.     rts
  3170. L885
  3171. ;         return 
  3172.     moveq    #0,d0
  3173.     movem.l    (a7)+,d2-d7/a2
  3174.     unlk    a5
  3175.     rts
  3176.  
  3177. L836
  3178.     dc.b    'glTexImage3DEXT(border)',0
  3179. L842
  3180.     dc.b    'glTexImage3DEXT(depth  != 2^k + 2*border))',0
  3181. L839
  3182.     dc.b    'glTexImage3DEXT(depth)',0
  3183. L843
  3184.     dc.b    'glTexImage3DEXT(format)',0
  3185. L841
  3186.     dc.b    'glTexImage3DEXT(height != 2^k + 2*border))',0
  3187. L838
  3188.     dc.b    'glTexImage3DEXT(height)',0
  3189. L835
  3190.     dc.b    'glTexImage3DEXT(internalFormat)',0
  3191. L834
  3192.     dc.b    'glTexImage3DEXT(level)',0
  3193. L833
  3194.     dc.b    'glTexImage3DEXT(target)',0
  3195. L844
  3196.     dc.b    'glTexImage3DEXT(type)',0
  3197. L840
  3198.     dc.b    'glTexImage3DEXT(width != 2^k + 2*border))',0
  3199. L837
  3200.     dc.b    'glTexImage3DEXT(width)',0
  3201.  
  3202.     SECTION "_gl_TexImage1D:0",CODE
  3203.  
  3204.  
  3205. ;void gl_TexImage1D( GLcontext *ctx,
  3206.     XDEF    _gl_TexImage1D
  3207. _gl_TexImage1D
  3208. L922    EQU    -$8
  3209.     link    a5,#L922
  3210.     movem.l    d2-d7/a2-a4,-(a7)
  3211.     movem.l    $C(a5),d0/d2/d3/d5
  3212.     move.l    $20(a5),d1
  3213.     move.l    $1C(a5),d4
  3214.     move.l    $8(a5),a2
  3215.     move.l    $28(a5),a3
  3216. L893
  3217. ;   struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
  3218.     move.l    a2,a1
  3219.     add.l    #$DEC6,a1
  3220.     move.l    a2,a0
  3221.     add.l    #$DEBA,a0
  3222.     move.l    (a0),d6
  3223.     muls.l    #$BC,d6
  3224.     add.l    a1,d6
  3225.     move.l    d6,a4
  3226. ;   if (INSIDE_BEGIN_END(ctx)) 
  3227.     move.l    a2,a0
  3228.     add.l    #$E968,a0
  3229.     move.l    (a0),d6
  3230.     cmp.l    #$1A00,d6
  3231.     beq.b    L895
  3232. L894
  3233. ;      gl_error( ctx, GL_INVALID_OPERATION, "glTexImage1D" );
  3234.     move.l    #L891,-(a7)
  3235.     pea    $502.w
  3236.     move.l    a2,-(a7)
  3237.     jsr    _gl_error
  3238.     add.w    #$C,a7
  3239.     movem.l    (a7)+,d2-d7/a2-a4
  3240.     unlk    a5
  3241.     rts
  3242. L895
  3243. ;   if (target==GL_TEXTURE_1D) 
  3244.     cmp.l    #$DE0,d0
  3245.     bne    L909
  3246. L896
  3247. ;      if (texture_1d_error_check( ctx, target, level, internal
  3248.     move.l    d4,-(a7)
  3249.     move.l    d5,-(a7)
  3250.     move.l    $24(a5),-(a7)
  3251.     move.l    d1,-(a7)
  3252.     move.l    d3,-(a7)
  3253.     move.l    d2,-(a7)
  3254.     move.l    d0,-(a7)
  3255.     move.l    a2,-(a7)
  3256.     jsr    _texture_1d_error_check
  3257.     add.w    #$20,a7
  3258.     tst.b    d0
  3259.     beq.b    L898
  3260. L897
  3261.     movem.l    (a7)+,d2-d7/a2-a4
  3262.     unlk    a5
  3263.     rts
  3264. L898
  3265. ;      if (texSet->Current1D->Image[level]) 
  3266.     move.l    a4,a1
  3267.     move.l    $A8(a1),a0
  3268.     lea    $50(a0),a0
  3269.     tst.l    0(a0,d2.l*4)
  3270.     beq.b    L900
  3271. L899
  3272. ;         gl_free_texture_image( texSet->Current1D->Image[le
  3273.     move.l    a4,a1
  3274.     move.l    $A8(a1),a0
  3275.     lea    $50(a0),a0
  3276.     move.l    0(a0,d2.l*4),-(a7)
  3277.     jsr    _gl_free_texture_image
  3278.     addq.w    #4,a7
  3279. L900
  3280. ;      if (image) 
  3281.     cmp.w    #0,a3
  3282.     beq.b    L902
  3283. L901
  3284. ;         teximage = image_to_texture(ctx, image, internalfo
  3285.     move.l    d4,-(a7)
  3286.     move.l    d3,-(a7)
  3287.     move.l    a3,-(a7)
  3288.     move.l    a2,-(a7)
  3289.     jsr    _image_to_texture
  3290.     add.w    #$10,a7
  3291.     move.l    d0,-$8(a5)
  3292.     bra.b    L903
  3293. L902
  3294. ;         teximage = make_null_texture(ctx, (GLenum) interna
  3295.     move.l    d4,-(a7)
  3296.     pea    1.w
  3297.     pea    1.w
  3298.     move.l    d5,-(a7)
  3299.     move.l    d3,-(a7)
  3300.     move.l    a2,-(a7)
  3301.     jsr    _make_null_texture
  3302.     add.w    #$18,a7
  3303.     move.l    d0,-$8(a5)
  3304. L903
  3305. ;      texSet->Current1D->Image[level] = teximage;
  3306.     move.l    a4,a1
  3307.     move.l    $A8(a1),a0
  3308.     lea    $50(a0),a0
  3309.     move.l    -$8(a5),0(a0,d2.l*4)
  3310. ;      texSet->Current1D->Dirty = GL_TRUE;
  3311.     move.l    a4,a1
  3312.     move.l    $A8(a1),a0
  3313.     move.b    #1,$488(a0)
  3314. ;      ctx->Texture.AnyDirty = GL_TRUE;
  3315.     move.l    a2,a0
  3316.     add.l    #$E03E,a0
  3317.     move.b    #1,(a0)
  3318. ;      ctx->NewState |= NEW_TEXTURING;
  3319.     move.l    a2,a0
  3320.     add.l    #$E960,a0
  3321.     move.l    (a0),d0
  3322.     or.l    #4,d0
  3323.     move.l    a2,a0
  3324.     add.l    #$E960,a0
  3325.     move.l    d0,(a0)
  3326. ;      if (image && image->RefCount==0) 
  3327.     cmp.w    #0,a3
  3328.     beq.b    L906
  3329. L904
  3330.     move.l    a3,a0
  3331.     tst.l    $1E(a0)
  3332.     bne.b    L906
  3333. L905
  3334. ;         gl_free_image(image);
  3335.     move.l    a3,-(a7)
  3336.     jsr    _gl_free_image
  3337.     addq.w    #4,a7
  3338. L906
  3339. ;      if (ctx->Driver.TexImage) 
  3340.     tst.l    $9C8(a2)
  3341.     beq.b    L908
  3342. L907
  3343. ;                                      width, height, 1, border);
  3344.     move.l    -$8(a5),-(a7)
  3345.     move.l    d3,-(a7)
  3346.     move.l    d2,-(a7)
  3347.     move.l    a4,a1
  3348.     move.l    $A8(a1),-(a7)
  3349.     pea    $DE0.w
  3350.     move.l    a2,-(a7)
  3351.     move.l    $9C8(a2),a0
  3352.     jsr    (a0)
  3353.     add.w    #$18,a7
  3354. L908
  3355.     bra    L921
  3356. L909
  3357. ;   else if (target==GL_PROXY_TEXTURE_1D) 
  3358.     cmp.l    #$8063,d0
  3359.     bne    L920
  3360. L910
  3361. ;      if (texture_1d_error_check( ctx, target, level, internal
  3362.     move.l    d4,-(a7)
  3363.     move.l    d5,-(a7)
  3364.     move.l    $24(a5),-(a7)
  3365.     move.l    d1,-(a7)
  3366.     move.l    d3,-(a7)
  3367.     move.l    d2,-(a7)
  3368.     move.l    d0,-(a7)
  3369.     move.l    a2,-(a7)
  3370.     jsr    _texture_1d_error_check
  3371.     add.w    #$20,a7
  3372.     tst.b    d0
  3373.     beq.b    L915
  3374. L911
  3375. ;         if (level>=0 && level<MAX_TEXTURE_LEVELS) 
  3376.     tst.l    d2
  3377.     bmi.b    L914
  3378. L912
  3379.     cmp.l    #$B,d2
  3380.     bge.b    L914
  3381. L913
  3382. ;                 
  3383.     pea    $3C.w
  3384.     clr.l    -(a7)
  3385.     move.l    a2,a0
  3386.     add.l    #$DEBA,a0
  3387.     move.l    $186(a0),a0
  3388.     lea    $50(a0),a0
  3389.     move.l    0(a0,d2.l*4),-(a7)
  3390.     jsr    _q_memset
  3391.     add.w    #$C,a7
  3392. L914
  3393.     bra    L916
  3394. L915
  3395. ;         ctx->Texture.Proxy1D->Image[level]->Format = (GLen
  3396.     move.l    a2,a0
  3397.     add.l    #$DEBA,a0
  3398.     move.l    $186(a0),a0
  3399.     lea    $50(a0),a0
  3400.     move.l    0(a0,d2.l*4),a0
  3401.     move.l    d3,(a0)
  3402. ;         ctx->Texture.Proxy1D->Image[level]->IntFormat = (G
  3403.     move.l    a2,a0
  3404.     add.l    #$DEBA,a0
  3405.     move.l    $186(a0),a0
  3406.     lea    $50(a0),a0
  3407.     move.l    0(a0,d2.l*4),a0
  3408.     move.l    d3,4(a0)
  3409. ;         ctx->Texture.Proxy1D->Image[level]->Border = borde
  3410.     move.l    a2,a0
  3411.     add.l    #$DEBA,a0
  3412.     move.l    $186(a0),a0
  3413.     lea    $50(a0),a0
  3414.     move.l    0(a0,d2.l*4),a0
  3415.     move.l    d4,$8(a0)
  3416. ;         ctx->Texture.Proxy1D->Image[level]->Width = width;
  3417.     move.l    a2,a0
  3418.     add.l    #$DEBA,a0
  3419.     move.l    $186(a0),a0
  3420.     lea    $50(a0),a0
  3421.     move.l    0(a0,d2.l*4),a0
  3422.     move.l    d5,$C(a0)
  3423. ;         ctx->Texture.Proxy1D->Image[level]->Height = 1;
  3424.     move.l    a2,a0
  3425.     add.l    #$DEBA,a0
  3426.     move.l    $186(a0),a0
  3427.     lea    $50(a0),a0
  3428.     move.l    0(a0,d2.l*4),a0
  3429.     move.l    #1,$10(a0)
  3430. L916
  3431. ;      if (image && image->RefCount==0) 
  3432.     cmp.w    #0,a3
  3433.     beq.b    L919
  3434. L917
  3435.     move.l    a3,a0
  3436.     tst.l    $1E(a0)
  3437.     bne.b    L919
  3438. L918
  3439. ;         gl_free_image(image);
  3440.     move.l    a3,-(a7)
  3441.     jsr    _gl_free_image
  3442.     addq.w    #4,a7
  3443. L919
  3444.     bra.b    L921
  3445. L920
  3446. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexImage1D(target)" );
  3447.     move.l    #L892,-(a7)
  3448.     pea    $500.w
  3449.     move.l    a2,-(a7)
  3450.     jsr    _gl_error
  3451.     add.w    #$C,a7
  3452.     movem.l    (a7)+,d2-d7/a2-a4
  3453.     unlk    a5
  3454.     rts
  3455. L921
  3456. ;      return;
  3457.     movem.l    (a7)+,d2-d7/a2-a4
  3458.     unlk    a5
  3459.     rts
  3460.  
  3461. L891
  3462.     dc.b    'glTexImage1D',0
  3463. L892
  3464.     dc.b    'glTexImage1D(target)',0
  3465.  
  3466.     SECTION "_gl_TexImage2D:0",CODE
  3467.  
  3468.  
  3469. ;void gl_TexImage2D( GLcontext *ctx,
  3470.     XDEF    _gl_TexImage2D
  3471. _gl_TexImage2D
  3472. L954    EQU    -$8
  3473.     link    a5,#L954
  3474.     movem.l    d2-d7/a2-a4,-(a7)
  3475.     movem.l    $C(a5),d0/d2/d3/d5
  3476.     move.l    $24(a5),d1
  3477.     move.l    $20(a5),d4
  3478.     move.l    $8(a5),a2
  3479.     move.l    $2C(a5),a3
  3480. L925
  3481. ;   struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
  3482.     move.l    a2,a1
  3483.     add.l    #$DEC6,a1
  3484.     move.l    a2,a0
  3485.     add.l    #$DEBA,a0
  3486.     move.l    (a0),d6
  3487.     muls.l    #$BC,d6
  3488.     add.l    a1,d6
  3489.     move.l    d6,a4
  3490. ;   if (INSIDE_BEGIN_END(ctx)) 
  3491.     move.l    a2,a0
  3492.     add.l    #$E968,a0
  3493.     move.l    (a0),d6
  3494.     cmp.l    #$1A00,d6
  3495.     beq.b    L927
  3496. L926
  3497. ;      gl_error( ctx, GL_INVALID_OPERATION, "glTexImage2D" );
  3498.     move.l    #L923,-(a7)
  3499.     pea    $502.w
  3500.     move.l    a2,-(a7)
  3501.     jsr    _gl_error
  3502.     add.w    #$C,a7
  3503.     movem.l    (a7)+,d2-d7/a2-a4
  3504.     unlk    a5
  3505.     rts
  3506. L927
  3507. ;   if (target==GL_TEXTURE_2D) 
  3508.     cmp.l    #$DE1,d0
  3509.     bne    L941
  3510. L928
  3511. ;      if (texture_2d_error_check( ctx, target, level, internal
  3512.     move.l    d4,-(a7)
  3513.     move.l    $1C(a5),-(a7)
  3514.     move.l    d5,-(a7)
  3515.     move.l    $28(a5),-(a7)
  3516.     move.l    d1,-(a7)
  3517.     move.l    d3,-(a7)
  3518.     move.l    d2,-(a7)
  3519.     move.l    d0,-(a7)
  3520.     move.l    a2,-(a7)
  3521.     jsr    _texture_2d_error_check
  3522.     add.w    #$24,a7
  3523.     tst.b    d0
  3524.     beq.b    L930
  3525. L929
  3526.     movem.l    (a7)+,d2-d7/a2-a4
  3527.     unlk    a5
  3528.     rts
  3529. L930
  3530. ;      if (texSet->Current2D->Image[level]) 
  3531.     move.l    a4,a1
  3532.     move.l    $AC(a1),a0
  3533.     lea    $50(a0),a0
  3534.     tst.l    0(a0,d2.l*4)
  3535.     beq.b    L932
  3536. L931
  3537. ;         gl_free_texture_image( texSet->Current2D->Image[le
  3538.     move.l    a4,a1
  3539.     move.l    $AC(a1),a0
  3540.     lea    $50(a0),a0
  3541.     move.l    0(a0,d2.l*4),-(a7)
  3542.     jsr    _gl_free_texture_image
  3543.     addq.w    #4,a7
  3544. L932
  3545. ;      if (image) 
  3546.     cmp.w    #0,a3
  3547.     beq.b    L934
  3548. L933
  3549. ;         teximage = image_to_texture(ctx, image, internalfo
  3550.     move.l    d4,-(a7)
  3551.     move.l    d3,-(a7)
  3552.     move.l    a3,-(a7)
  3553.     move.l    a2,-(a7)
  3554.     jsr    _image_to_texture
  3555.     add.w    #$10,a7
  3556.     move.l    d0,-$8(a5)
  3557.     bra.b    L935
  3558. L934
  3559. ;         teximage = make_null_texture(ctx, (GLenum) interna
  3560.     move.l    d4,-(a7)
  3561.     pea    1.w
  3562.     move.l    $1C(a5),-(a7)
  3563.     move.l    d5,-(a7)
  3564.     move.l    d3,-(a7)
  3565.     move.l    a2,-(a7)
  3566.     jsr    _make_null_texture
  3567.     add.w    #$18,a7
  3568.     move.l    d0,-$8(a5)
  3569. L935
  3570. ;      texSet->Current2D->Image[level] = teximage;
  3571.     move.l    a4,a1
  3572.     move.l    $AC(a1),a0
  3573.     lea    $50(a0),a0
  3574.     move.l    -$8(a5),0(a0,d2.l*4)
  3575. ;      texSet->Current2D->Dirty = GL_TRUE;
  3576.     move.l    a4,a1
  3577.     move.l    $AC(a1),a0
  3578.     move.b    #1,$488(a0)
  3579. ;      ctx->Texture.AnyDirty = GL_TRUE;
  3580.     move.l    a2,a0
  3581.     add.l    #$E03E,a0
  3582.     move.b    #1,(a0)
  3583. ;      ctx->NewState |= NEW_TEXTURING;
  3584.     move.l    a2,a0
  3585.     add.l    #$E960,a0
  3586.     move.l    (a0),d0
  3587.     or.l    #4,d0
  3588.     move.l    a2,a0
  3589.     add.l    #$E960,a0
  3590.     move.l    d0,(a0)
  3591. ;      if (image && image->RefCount==0) 
  3592.     cmp.w    #0,a3
  3593.     beq.b    L938
  3594. L936
  3595.     move.l    a3,a0
  3596.     tst.l    $1E(a0)
  3597.     bne.b    L938
  3598. L937
  3599. ;         gl_free_image(image);
  3600.     move.l    a3,-(a7)
  3601.     jsr    _gl_free_image
  3602.     addq.w    #4,a7
  3603. L938
  3604. ;      if (ctx->Driver.TexImage) 
  3605.     tst.l    $9C8(a2)
  3606.     beq.b    L940
  3607. L939
  3608. ;         (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_2D,
  3609.     move.l    -$8(a5),-(a7)
  3610.     move.l    d3,-(a7)
  3611.     move.l    d2,-(a7)
  3612.     move.l    a4,a1
  3613.     move.l    $AC(a1),-(a7)
  3614.     pea    $DE1.w
  3615.     move.l    a2,-(a7)
  3616.     move.l    $9C8(a2),a0
  3617.     jsr    (a0)
  3618.     add.w    #$18,a7
  3619. L940
  3620.     bra    L953
  3621. L941
  3622. ;   else if (target==GL_PROXY_TEXTURE_2D) 
  3623.     cmp.l    #$8064,d0
  3624.     bne    L952
  3625. L942
  3626. ;      if (texture_2d_error_check( ctx, target, level, internal
  3627.     move.l    d4,-(a7)
  3628.     move.l    $1C(a5),-(a7)
  3629.     move.l    d5,-(a7)
  3630.     move.l    $28(a5),-(a7)
  3631.     move.l    d1,-(a7)
  3632.     move.l    d3,-(a7)
  3633.     move.l    d2,-(a7)
  3634.     move.l    d0,-(a7)
  3635.     move.l    a2,-(a7)
  3636.     jsr    _texture_2d_error_check
  3637.     add.w    #$24,a7
  3638.     tst.b    d0
  3639.     beq.b    L947
  3640. L943
  3641. ;         if (level>=0 && level<MAX_TEXTURE_LEVELS) 
  3642.     tst.l    d2
  3643.     bmi.b    L946
  3644. L944
  3645.     cmp.l    #$B,d2
  3646.     bge.b    L946
  3647. L945
  3648. ;                 
  3649.     pea    $3C.w
  3650.     clr.l    -(a7)
  3651.     move.l    a2,a0
  3652.     add.l    #$DEBA,a0
  3653.     move.l    $18A(a0),a0
  3654.     lea    $50(a0),a0
  3655.     move.l    0(a0,d2.l*4),-(a7)
  3656.     jsr    _q_memset
  3657.     add.w    #$C,a7
  3658. L946
  3659.     bra.b    L948
  3660. L947
  3661. ;         ctx->Texture.Proxy2D->Image[level]->Format = (GLen
  3662.     move.l    a2,a0
  3663.     add.l    #$DEBA,a0
  3664.     move.l    $18A(a0),a0
  3665.     lea    $50(a0),a0
  3666.     move.l    0(a0,d2.l*4),a0
  3667.     move.l    d3,(a0)
  3668. ;         ctx->Texture.Proxy2D->Image[level]->IntFormat = (G
  3669.     move.l    a2,a0
  3670.     add.l    #$DEBA,a0
  3671.     move.l    $18A(a0),a0
  3672.     lea    $50(a0),a0
  3673.     move.l    0(a0,d2.l*4),a0
  3674.     move.l    d3,4(a0)
  3675. ;         ctx->Texture.Proxy2D->Image[level]->Border = borde
  3676.     move.l    a2,a0
  3677.     add.l    #$DEBA,a0
  3678.     move.l    $18A(a0),a0
  3679.     lea    $50(a0),a0
  3680.     move.l    0(a0,d2.l*4),a0
  3681.     move.l    d4,$8(a0)
  3682. ;         ctx->Texture.Proxy2D->Image[level]->Width = width;
  3683.     move.l    a2,a0
  3684.     add.l    #$DEBA,a0
  3685.     move.l    $18A(a0),a0
  3686.     lea    $50(a0),a0
  3687.     move.l    0(a0,d2.l*4),a0
  3688.     move.l    d5,$C(a0)
  3689. ;         ctx->Texture.Proxy2D->Image[level]->Height = heigh
  3690.     move.l    a2,a0
  3691.     add.l    #$DEBA,a0
  3692.     move.l    $18A(a0),a0
  3693.     lea    $50(a0),a0
  3694.     move.l    0(a0,d2.l*4),a0
  3695.     move.l    $1C(a5),$10(a0)
  3696. L948
  3697. ;      if (image && image->RefCount==0) 
  3698.     cmp.w    #0,a3
  3699.     beq.b    L951
  3700. L949
  3701.     move.l    a3,a0
  3702.     tst.l    $1E(a0)
  3703.     bne.b    L951
  3704. L950
  3705. ;         gl_free_image(image);
  3706.     move.l    a3,-(a7)
  3707.     jsr    _gl_free_image
  3708.     addq.w    #4,a7
  3709. L951
  3710.     bra.b    L953
  3711. L952
  3712. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexImage2D(target)" );
  3713.     move.l    #L924,-(a7)
  3714.     pea    $500.w
  3715.     move.l    a2,-(a7)
  3716.     jsr    _gl_error
  3717.     add.w    #$C,a7
  3718.     movem.l    (a7)+,d2-d7/a2-a4
  3719.     unlk    a5
  3720.     rts
  3721. L953
  3722. ;      return;
  3723.     movem.l    (a7)+,d2-d7/a2-a4
  3724.     unlk    a5
  3725.     rts
  3726.  
  3727. L923
  3728.     dc.b    'glTexImage2D',0
  3729. L924
  3730.     dc.b    'glTexImage2D(target)',0
  3731.  
  3732.     SECTION "_gl_TexImage3DEXT:0",CODE
  3733.  
  3734.  
  3735. ;void gl_TexImage3DEXT( GLcontext *ctx,
  3736.     XDEF    _gl_TexImage3DEXT
  3737. _gl_TexImage3DEXT
  3738. L986    EQU    -$8
  3739.     link    a5,#L986
  3740.     movem.l    d2-d7/a2-a4,-(a7)
  3741.     movem.l    $C(a5),d0/d2/d3/d5
  3742.     move.l    $28(a5),d1
  3743.     move.l    $24(a5),d4
  3744.     move.l    $8(a5),a2
  3745.     move.l    $30(a5),a3
  3746. L957
  3747. ;   struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
  3748.     move.l    a2,a1
  3749.     add.l    #$DEC6,a1
  3750.     move.l    a2,a0
  3751.     add.l    #$DEBA,a0
  3752.     move.l    (a0),d6
  3753.     muls.l    #$BC,d6
  3754.     add.l    a1,d6
  3755.     move.l    d6,a4
  3756. ;   if (INSIDE_BEGIN_END(ctx)) 
  3757.     move.l    a2,a0
  3758.     add.l    #$E968,a0
  3759.     move.l    (a0),d6
  3760.     cmp.l    #$1A00,d6
  3761.     beq.b    L959
  3762. L958
  3763. ;      gl_error( ctx, GL_INVALID_OPERATION, "glTexImage3DEXT" );
  3764.     move.l    #L955,-(a7)
  3765.     pea    $502.w
  3766.     move.l    a2,-(a7)
  3767.     jsr    _gl_error
  3768.     add.w    #$C,a7
  3769.     movem.l    (a7)+,d2-d7/a2-a4
  3770.     unlk    a5
  3771.     rts
  3772. L959
  3773. ;   if (target==GL_TEXTURE_3D_EXT) 
  3774.     cmp.l    #$806F,d0
  3775.     bne    L973
  3776. L960
  3777. ;   }
  3778.     move.l    d4,-(a7)
  3779.     move.l    $20(a5),-(a7)
  3780.     move.l    $1C(a5),-(a7)
  3781.     move.l    d5,-(a7)
  3782.     move.l    $2C(a5),-(a7)
  3783.     move.l    d1,-(a7)
  3784.     move.l    d3,-(a7)
  3785.     move.l    d2,-(a7)
  3786.     move.l    d0,-(a7)
  3787.     move.l    a2,-(a7)
  3788.     jsr    _texture_3d_error_check
  3789.     add.w    #$28,a7
  3790.     tst.b    d0
  3791.     beq.b    L962
  3792. L961
  3793.     movem.l    (a7)+,d2-d7/a2-a4
  3794.     unlk    a5
  3795.     rts
  3796. L962
  3797. ;      if (texSet->Current3D->Image[level]) 
  3798.     move.l    a4,a1
  3799.     move.l    $B0(a1),a0
  3800.     lea    $50(a0),a0
  3801.     tst.l    0(a0,d2.l*4)
  3802.     beq.b    L964
  3803. L963
  3804. ;         gl_free_texture_image( texSet->Current3D->Image[le
  3805.     move.l    a4,a1
  3806.     move.l    $B0(a1),a0
  3807.     lea    $50(a0),a0
  3808.     move.l    0(a0,d2.l*4),-(a7)
  3809.     jsr    _gl_free_texture_image
  3810.     addq.w    #4,a7
  3811. L964
  3812. ;      if (image) 
  3813.     cmp.w    #0,a3
  3814.     beq.b    L966
  3815. L965
  3816. ;         teximage = image_to_texture(ctx, image, internalfo
  3817.     move.l    d4,-(a7)
  3818.     move.l    d3,-(a7)
  3819.     move.l    a3,-(a7)
  3820.     move.l    a2,-(a7)
  3821.     jsr    _image_to_texture
  3822.     add.w    #$10,a7
  3823.     move.l    d0,-$8(a5)
  3824.     bra.b    L967
  3825. L966
  3826. ;         teximage = make_null_texture(ctx, (GLenum) interna
  3827.     move.l    d4,-(a7)
  3828.     move.l    $20(a5),-(a7)
  3829.     move.l    $1C(a5),-(a7)
  3830.     move.l    d5,-(a7)
  3831.     move.l    d3,-(a7)
  3832.     move.l    a2,-(a7)
  3833.     jsr    _make_null_texture
  3834.     add.w    #$18,a7
  3835.     move.l    d0,-$8(a5)
  3836. L967
  3837. ;      texSet->Current3D->Image[level] = teximage;
  3838.     move.l    a4,a1
  3839.     move.l    $B0(a1),a0
  3840.     lea    $50(a0),a0
  3841.     move.l    -$8(a5),0(a0,d2.l*4)
  3842. ;      texSet->Current3D->Dirty = GL_TRUE;
  3843.     move.l    a4,a1
  3844.     move.l    $B0(a1),a0
  3845.     move.b    #1,$488(a0)
  3846. ;      ctx->Texture.AnyDirty = GL_TRUE;
  3847.     move.l    a2,a0
  3848.     add.l    #$E03E,a0
  3849.     move.b    #1,(a0)
  3850. ;      ctx->NewState |= NEW_TEXTURING;
  3851.     move.l    a2,a0
  3852.     add.l    #$E960,a0
  3853.     move.l    (a0),d0
  3854.     or.l    #4,d0
  3855.     move.l    a2,a0
  3856.     add.l    #$E960,a0
  3857.     move.l    d0,(a0)
  3858. ;      if (image && image->RefCount==0) 
  3859.     cmp.w    #0,a3
  3860.     beq.b    L970
  3861. L968
  3862.     move.l    a3,a0
  3863.     tst.l    $1E(a0)
  3864.     bne.b    L970
  3865. L969
  3866. ;         gl_free_image(image);
  3867.     move.l    a3,-(a7)
  3868.     jsr    _gl_free_image
  3869.     addq.w    #4,a7
  3870. L970
  3871. ;      if (ctx->Driver.TexImage) 
  3872.     tst.l    $9C8(a2)
  3873.     beq.b    L972
  3874. L971
  3875. ;         (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_3D_EXT,
  3876.     move.l    -$8(a5),-(a7)
  3877.     move.l    d3,-(a7)
  3878.     move.l    d2,-(a7)
  3879.     move.l    a4,a1
  3880.     move.l    $B0(a1),-(a7)
  3881.     move.l    #$806F,-(a7)
  3882.     move.l    a2,-(a7)
  3883.     move.l    $9C8(a2),a0
  3884.     jsr    (a0)
  3885.     add.w    #$18,a7
  3886. L972
  3887.     bra    L985
  3888. L973
  3889. ;   else if (target==GL_PROXY_TEXTURE_3D_EXT) 
  3890.     cmp.l    #$8070,d0
  3891.     bne    L984
  3892. L974
  3893. ;      if (texture_3d_error_check( ctx, target, level, internal
  3894.     move.l    d4,-(a7)
  3895.     move.l    $20(a5),-(a7)
  3896.     move.l    $1C(a5),-(a7)
  3897.     move.l    d5,-(a7)
  3898.     move.l    $2C(a5),-(a7)
  3899.     move.l    d1,-(a7)
  3900.     move.l    d3,-(a7)
  3901.     move.l    d2,-(a7)
  3902.     move.l    d0,-(a7)
  3903.     move.l    a2,-(a7)
  3904.     jsr    _texture_3d_error_check
  3905.     add.w    #$28,a7
  3906.     tst.b    d0
  3907.     beq.b    L979
  3908. L975
  3909. ;         if (level>=0 && level<MAX_TEXTURE_LEVELS) 
  3910.     tst.l    d2
  3911.     bmi.b    L978
  3912. L976
  3913.     cmp.l    #$B,d2
  3914.     bge.b    L978
  3915. L977
  3916. ;                 
  3917.     pea    $3C.w
  3918.     clr.l    -(a7)
  3919.     move.l    a2,a0
  3920.     add.l    #$DEBA,a0
  3921.     move.l    $18E(a0),a0
  3922.     lea    $50(a0),a0
  3923.     move.l    0(a0,d2.l*4),-(a7)
  3924.     jsr    _q_memset
  3925.     add.w    #$C,a7
  3926. L978
  3927.     bra    L980
  3928. L979
  3929. ;         ctx->Texture.Proxy3D->Image[level]->Format = (GLen
  3930.     move.l    a2,a0
  3931.     add.l    #$DEBA,a0
  3932.     move.l    $18E(a0),a0
  3933.     lea    $50(a0),a0
  3934.     move.l    0(a0,d2.l*4),a0
  3935.     move.l    d3,(a0)
  3936. ;         ctx->Texture.Proxy3D->Image[level]->IntFormat = (G
  3937.     move.l    a2,a0
  3938.     add.l    #$DEBA,a0
  3939.     move.l    $18E(a0),a0
  3940.     lea    $50(a0),a0
  3941.     move.l    0(a0,d2.l*4),a0
  3942.     move.l    d3,4(a0)
  3943. ;         ctx->Texture.Proxy3D->Image[level]->Border = borde
  3944.     move.l    a2,a0
  3945.     add.l    #$DEBA,a0
  3946.     move.l    $18E(a0),a0
  3947.     lea    $50(a0),a0
  3948.     move.l    0(a0,d2.l*4),a0
  3949.     move.l    d4,$8(a0)
  3950. ;         ctx->Texture.Proxy3D->Image[level]->Width = width;
  3951.     move.l    a2,a0
  3952.     add.l    #$DEBA,a0
  3953.     move.l    $18E(a0),a0
  3954.     lea    $50(a0),a0
  3955.     move.l    0(a0,d2.l*4),a0
  3956.     move.l    d5,$C(a0)
  3957. ;         ctx->Texture.Proxy3D->Image[level]->Height = heigh
  3958.     move.l    a2,a0
  3959.     add.l    #$DEBA,a0
  3960.     move.l    $18E(a0),a0
  3961.     lea    $50(a0),a0
  3962.     move.l    0(a0,d2.l*4),a0
  3963.     move.l    $1C(a5),$10(a0)
  3964. ;         ctx->Texture.Proxy3D->Image[level]->Depth  = depth;
  3965.     move.l    a2,a0
  3966.     add.l    #$DEBA,a0
  3967.     move.l    $18E(a0),a0
  3968.     lea    $50(a0),a0
  3969.     move.l    0(a0,d2.l*4),a0
  3970.     move.l    $20(a5),$14(a0)
  3971. L980
  3972. ;      if (image && image->RefCount==0) 
  3973.     cmp.w    #0,a3
  3974.     beq.b    L983
  3975. L981
  3976.     move.l    a3,a0
  3977.     tst.l    $1E(a0)
  3978.     bne.b    L983
  3979. L982
  3980. ;         gl_free_image(image);
  3981.     move.l    a3,-(a7)
  3982.     jsr    _gl_free_image
  3983.     addq.w    #4,a7
  3984. L983
  3985.     bra.b    L985
  3986. L984
  3987. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexImage3DEXT(target)
  3988.     move.l    #L956,-(a7)
  3989.     pea    $500.w
  3990.     move.l    a2,-(a7)
  3991.     jsr    _gl_error
  3992.     add.w    #$C,a7
  3993.     movem.l    (a7)+,d2-d7/a2-a4
  3994.     unlk    a5
  3995.     rts
  3996. L985
  3997. ;      return;
  3998.     movem.l    (a7)+,d2-d7/a2-a4
  3999.     unlk    a5
  4000.     rts
  4001.  
  4002. L955
  4003.     dc.b    'glTexImage3DEXT',0
  4004. L956
  4005.     dc.b    'glTexImage3DEXT(target)',0
  4006.  
  4007.     SECTION "_gl_GetTexImage:0",CODE
  4008.  
  4009.  
  4010. ;void gl_GetTexImage( GLcontext *ctx, GLenum target, GLint level, GLe
  4011.     XDEF    _gl_GetTexImage
  4012. _gl_GetTexImage
  4013. L1044    EQU    -$1920
  4014.     link    a5,#L1044
  4015.     movem.l    d2-d7/a2-a4,-(a7)
  4016.     movem.l    $10(a5),d2/d4/d5
  4017.     move.l    $C(a5),d3
  4018.     move.l    $8(a5),a2
  4019. L995
  4020. ;   if (INSIDE_BEGIN_END(ctx)) 
  4021.     move.l    a2,a0
  4022.     add.l    #$E968,a0
  4023.     move.l    (a0),d0
  4024.     cmp.l    #$1A00,d0
  4025.     beq.b    L997
  4026. L996
  4027. ;      gl_error( ctx, GL_INVALID_OPERATION, "glGetTexImage" );
  4028.     move.l    #L987,-(a7)
  4029.     pea    $502.w
  4030.     move.l    a2,-(a7)
  4031.     jsr    _gl_error
  4032.     add.w    #$C,a7
  4033.     movem.l    (a7)+,d2-d7/a2-a4
  4034.     unlk    a5
  4035.     rts
  4036. L997
  4037. ;   if (level < 0 || level >= MAX_TEXTURE_LEVELS) 
  4038.     tst.l    d2
  4039.     bmi.b    L999
  4040. L998
  4041.     cmp.l    #$B,d2
  4042.     blt.b    L1000
  4043. L999
  4044. ;      gl_error( ctx, GL_INVALID_VALUE, "glGetTexImage(level)" )
  4045.     move.l    #L988,-(a7)
  4046.     pea    $501.w
  4047.     move.l    a2,-(a7)
  4048.     jsr    _gl_error
  4049.     add.w    #$C,a7
  4050.     movem.l    (a7)+,d2-d7/a2-a4
  4051.     unlk    a5
  4052.     rts
  4053. L1000
  4054. ;   if (gl_sizeof_type(type) <= 0) 
  4055.     move.l    d5,-(a7)
  4056.     jsr    _gl_sizeof_type
  4057.     addq.w    #4,a7
  4058.     cmp.l    #0,d0
  4059.     bgt.b    L1002
  4060. L1001
  4061. ;      gl_error( ctx, GL_INVALID_ENUM, "glGetTexImage(type)" );
  4062.     move.l    #L989,-(a7)
  4063.     pea    $500.w
  4064.     move.l    a2,-(a7)
  4065.     jsr    _gl_error
  4066.     add.w    #$C,a7
  4067.     movem.l    (a7)+,d2-d7/a2-a4
  4068.     unlk    a5
  4069.     rts
  4070. L1002
  4071. ;   if (gl_components_in_format(format) <= 0) 
  4072.     move.l    d4,-(a7)
  4073.     jsr    _gl_components_in_format
  4074.     addq.w    #4,a7
  4075.     cmp.l    #0,d0
  4076.     bgt.b    L1004
  4077. L1003
  4078. ;      gl_error( ctx, GL_INVALID_ENUM, "glGetTexImage(format)" )
  4079.     move.l    #L990,-(a7)
  4080.     pea    $500.w
  4081.     move.l    a2,-(a7)
  4082.     jsr    _gl_error
  4083.     add.w    #$C,a7
  4084.     movem.l    (a7)+,d2-d7/a2-a4
  4085.     unlk    a5
  4086.     rts
  4087. L1004
  4088. ;   if (!pixels)
  4089.     tst.l    $1C(a5)
  4090.     bne.b    L1006
  4091. L1005
  4092.     movem.l    (a7)+,d2-d7/a2-a4
  4093.     unlk    a5
  4094.     rts
  4095. L1006
  4096. ;   switch (target)
  4097.     cmp.l    #$DE1,d3
  4098.     beq.b    L1008
  4099.     bgt.b    L1045
  4100.     cmp.l    #$DE0,d3
  4101.     beq.b    L1007
  4102.     bra    L1010
  4103. L1045
  4104.     cmp.l    #$806F,d3
  4105.     beq.b    L1009
  4106.     bra.b    L1010
  4107. ;      
  4108. L1007
  4109. ;         texObj = ctx->Texture.Set[ctx->Texture.CurrentSet]
  4110.     move.l    a2,a1
  4111.     add.l    #$DEC6,a1
  4112.     move.l    a2,a0
  4113.     add.l    #$DEBA,a0
  4114.     move.l    (a0),d0
  4115.     muls.l    #$BC,d0
  4116.     lea    0(a1,d0.l),a0
  4117.     move.l    $A8(a0),a0
  4118. ;         
  4119.     bra.b    L1011
  4120. L1008
  4121. ;         texObj = ctx->Texture.Set[ctx->Texture.CurrentSet]
  4122.     move.l    a2,a1
  4123.     add.l    #$DEC6,a1
  4124.     move.l    a2,a0
  4125.     add.l    #$DEBA,a0
  4126.     move.l    (a0),d0
  4127.     muls.l    #$BC,d0
  4128.     lea    0(a1,d0.l),a0
  4129.     move.l    $AC(a0),a0
  4130. ;         
  4131.     bra.b    L1011
  4132. L1009
  4133. ;         texObj = ctx->Texture.Set[ctx->Texture.CurrentSet]
  4134.     move.l    a2,a1
  4135.     add.l    #$DEC6,a1
  4136.     move.l    a2,a0
  4137.     add.l    #$DEBA,a0
  4138.     move.l    (a0),d0
  4139.     muls.l    #$BC,d0
  4140.     lea    0(a1,d0.l),a0
  4141.     move.l    $B0(a0),a0
  4142. ;         
  4143.     bra.b    L1011
  4144. L1010
  4145. ;         gl_error( ctx, GL_INVALID_ENUM, "glGetTexImage(tar
  4146.     move.l    #L991,-(a7)
  4147.     pea    $500.w
  4148.     move.l    a2,-(a7)
  4149.     jsr    _gl_error
  4150.     add.w    #$C,a7
  4151.     movem.l    (a7)+,d2-d7/a2-a4
  4152.     unlk    a5
  4153.     rts
  4154. L1011
  4155. ;         return;
  4156. ;   if (texObj->Image[level] && texObj->Image[level]->Data) 
  4157.     lea    $50(a0),a1
  4158.     tst.l    0(a1,d2.l*4)
  4159.     beq    L1043
  4160. L1012
  4161.     lea    $50(a0),a1
  4162.     move.l    0(a1,d2.l*4),a1
  4163.     tst.l    $34(a1)
  4164.     beq    L1043
  4165. L1013
  4166. ;      const struct gl_texture_image *texImage = texObj->Image[
  4167.     lea    $50(a0),a0
  4168.     move.l    0(a0,d2.l*4),a3
  4169. ;      GLint width = texImage->Width;
  4170.     move.l    a3,a0
  4171.     move.l    $C(a0),d2
  4172. ;      GLint height = texImage->Height;
  4173.     move.l    a3,a0
  4174.     move.l    $10(a0),d7
  4175. ;      for (row = 0;
  4176.     moveq    #0,d3
  4177.     bra    L1042
  4178. L1014
  4179. ;         GLvoid *dest = gl_pixel_addr_in_image( &ctx->Unpac
  4180.     clr.l    -(a7)
  4181.     move.l    d3,-(a7)
  4182.     clr.l    -(a7)
  4183.     move.l    d5,-(a7)
  4184.     move.l    d4,-(a7)
  4185.     move.l    d7,-(a7)
  4186.     move.l    d2,-(a7)
  4187.     move.l    $1C(a5),-(a7)
  4188.     move.l    a2,a0
  4189.     add.l    #$E65E,a0
  4190.     pea    (a0)
  4191.     jsr    _gl_pixel_addr_in_image
  4192.     add.w    #$24,a7
  4193.     move.l    d0,a4
  4194. ;         if (texImage->Format == GL_RGBA) 
  4195.     move.l    a3,a0
  4196.     move.l    (a0),d0
  4197.     cmp.l    #$1908,d0
  4198.     bne.b    L1016
  4199. L1015
  4200. ;            const GLubyte *src = texImage->Data + row * 
  4201.     move.l    a3,a1
  4202.     move.l    d3,d0
  4203.     muls.l    d2,d0
  4204.     moveq    #2,d1
  4205.     asl.l    d1,d0
  4206.     move.l    $34(a1),a0
  4207. ;            gl_pack_rgba_span( ctx, width, (void *) src,
  4208.     move.l    a4,-(a7)
  4209.     move.l    d5,-(a7)
  4210.     move.l    d4,-(a7)
  4211.     pea    0(a0,d0.l)
  4212.     move.l    d2,-(a7)
  4213.     move.l    a2,-(a7)
  4214.     jsr    _gl_pack_rgba_span
  4215.     add.w    #$18,a7
  4216.     bra    L1041
  4217. L1016
  4218. ;            switch (texImage->Format)
  4219.     move.l    a3,a0
  4220.     move.l    (a0),d0
  4221.     cmp.l    #$1908,d0
  4222.     beq    L1037
  4223.     bgt.b    L1046
  4224.     cmp.l    #$1906,d0
  4225.     beq.b    L1017
  4226.     bgt.b    L1047
  4227.     cmp.l    #$1900,d0
  4228.     beq    L1038
  4229.     bra    L1039
  4230. L1047
  4231.     bgt    L1033
  4232. L1046
  4233.     cmp.l    #$190A,d0
  4234.     beq    L1025
  4235.     bgt.b    L1048
  4236.     blt.b    L1021
  4237. L1048
  4238.     cmp.l    #$8049,d0
  4239.     beq    L1029
  4240.     bra    L1039
  4241. ;               
  4242. L1017
  4243. ;                  src = texImage->Data + row * wid
  4244.     move.l    a3,a1
  4245.     move.l    d3,d0
  4246.     muls.l    d2,d0
  4247.     move.l    $34(a1),a0
  4248.     add.l    d0,a0
  4249. ;                  for (i = 0;
  4250.     moveq    #0,d0
  4251.     bra.b    L1019
  4252. L1018
  4253. ;                     rgba[i][RCOMP] = 255;
  4254.     lea    -$1918(a5),a1
  4255.     move.b    #$FF,0(a1,d0.l*4)
  4256. ;                     rgba[i][GCOMP] = 255;
  4257.     lea    -$1918(a5),a1
  4258.     lea    0(a1,d0.l*4),a1
  4259.     move.b    #$FF,1(a1)
  4260. ;                     rgba[i][BCOMP] = 255;
  4261.     lea    -$1918(a5),a1
  4262.     lea    0(a1,d0.l*4),a1
  4263.     move.b    #$FF,2(a1)
  4264. ;                     rgba[i][ACOMP] = src[i];
  4265.     lea    -$1918(a5),a1
  4266.     lea    0(a1,d0.l*4),a1
  4267.     move.b    0(a0,d0.l),3(a1)
  4268.     addq.l    #1,d0
  4269. L1019
  4270.     cmp.l    d2,d0
  4271.     blt.b    L1018
  4272. L1020
  4273. ;                  
  4274.     bra    L1040
  4275. L1021
  4276. ;                  src = texImage->Data + row * wid
  4277.     move.l    a3,a1
  4278.     move.l    d3,d0
  4279.     muls.l    d2,d0
  4280.     move.l    $34(a1),a0
  4281.     add.l    d0,a0
  4282. ;                  for (i = 0;
  4283.     moveq    #0,d0
  4284.     bra.b    L1023
  4285. L1022
  4286. ;                     rgba[i][RCOMP] = src[i];
  4287.     lea    -$1918(a5),a1
  4288.     move.b    0(a0,d0.l),0(a1,d0.l*4)
  4289. ;                     rgba[i][GCOMP] = src[i];
  4290.     lea    -$1918(a5),a1
  4291.     lea    0(a1,d0.l*4),a1
  4292.     move.b    0(a0,d0.l),1(a1)
  4293. ;                     rgba[i][BCOMP] = src[i];
  4294.     lea    -$1918(a5),a1
  4295.     lea    0(a1,d0.l*4),a1
  4296.     move.b    0(a0,d0.l),2(a1)
  4297. ;                     rgba[i][ACOMP] = 255;
  4298.     lea    -$1918(a5),a1
  4299.     lea    0(a1,d0.l*4),a1
  4300.     move.b    #$FF,3(a1)
  4301.     addq.l    #1,d0
  4302. L1023
  4303.     cmp.l    d2,d0
  4304.     blt.b    L1022
  4305. L1024
  4306. ;                  
  4307.     bra    L1040
  4308. L1025
  4309. ;                  src = texImage->Data + row * 2 *
  4310.     move.l    a3,a1
  4311.     move.l    d3,d0
  4312.     moveq    #1,d1
  4313.     asl.l    d1,d0
  4314.     muls.l    d2,d0
  4315.     move.l    $34(a1),a0
  4316.     add.l    d0,a0
  4317. ;                  for (i = 0;
  4318.     moveq    #0,d0
  4319.     bra.b    L1027
  4320. L1026
  4321. ;                     rgba[i][RCOMP] = src[i*2+0
  4322.     move.l    d0,d1
  4323.     moveq    #1,d6
  4324.     asl.l    d6,d1
  4325.     lea    -$1918(a5),a1
  4326.     move.b    0(a0,d1.l),0(a1,d0.l*4)
  4327. ;                     rgba[i][GCOMP] = src[i*2+0
  4328.     move.l    d0,d1
  4329.     moveq    #1,d6
  4330.     asl.l    d6,d1
  4331.     lea    -$1918(a5),a1
  4332.     lea    0(a1,d0.l*4),a1
  4333.     move.b    0(a0,d1.l),1(a1)
  4334. ;                     rgba[i][BCOMP] = src[i*2+0
  4335.     move.l    d0,d1
  4336.     moveq    #1,d6
  4337.     asl.l    d6,d1
  4338.     lea    -$1918(a5),a1
  4339.     lea    0(a1,d0.l*4),a1
  4340.     move.b    0(a0,d1.l),2(a1)
  4341. ;                     rgba[i][ACOMP] = src[i*2+1
  4342.     move.l    d0,d1
  4343.     moveq    #1,d6
  4344.     asl.l    d6,d1
  4345.     lea    1(a0),a1
  4346.     move.b    0(a1,d1.l),d1
  4347.     lea    -$1918(a5),a1
  4348.     lea    0(a1,d0.l*4),a1
  4349.     move.b    d1,3(a1)
  4350.     addq.l    #1,d0
  4351. L1027
  4352.     cmp.l    d2,d0
  4353.     blt.b    L1026
  4354. L1028
  4355. ;                  
  4356.     bra    L1040
  4357. L1029
  4358. ;                  src = texImage->Data + row * wid
  4359.     move.l    a3,a1
  4360.     move.l    d3,d0
  4361.     muls.l    d2,d0
  4362.     move.l    $34(a1),a0
  4363.     add.l    d0,a0
  4364. ;                  for (i = 0;
  4365.     moveq    #0,d0
  4366.     bra.b    L1031
  4367. L1030
  4368. ;                     rgba[i][RCOMP] = src[i];
  4369.     lea    -$1918(a5),a1
  4370.     move.b    0(a0,d0.l),0(a1,d0.l*4)
  4371. ;                     rgba[i][GCOMP] = src[i];
  4372.     lea    -$1918(a5),a1
  4373.     lea    0(a1,d0.l*4),a1
  4374.     move.b    0(a0,d0.l),1(a1)
  4375. ;                     rgba[i][BCOMP] = src[i];
  4376.     lea    -$1918(a5),a1
  4377.     lea    0(a1,d0.l*4),a1
  4378.     move.b    0(a0,d0.l),2(a1)
  4379. ;                     rgba[i][ACOMP] = 255;
  4380.     lea    -$1918(a5),a1
  4381.     lea    0(a1,d0.l*4),a1
  4382.     move.b    #$FF,3(a1)
  4383.     addq.l    #1,d0
  4384. L1031
  4385.     cmp.l    d2,d0
  4386.     blt.b    L1030
  4387. L1032
  4388. ;                  
  4389.     bra    L1040
  4390. L1033
  4391. ;                  src = texImage->Data + row * 3 *
  4392.     move.l    a3,a1
  4393.     move.l    d3,d0
  4394.     muls.l    #3,d0
  4395.     muls.l    d2,d0
  4396.     move.l    $34(a1),a0
  4397.     add.l    d0,a0
  4398. ;                  for (i = 0;
  4399.     moveq    #0,d0
  4400.     bra.b    L1035
  4401. L1034
  4402. ;                     rgba[i][RCOMP] = src[i*3+0
  4403.     move.l    d0,d1
  4404.     muls.l    #3,d1
  4405.     lea    -$1918(a5),a1
  4406.     move.b    0(a0,d1.l),0(a1,d0.l*4)
  4407. ;                     rgba[i][GCOMP] = src[i*3+1
  4408.     move.l    d0,d1
  4409.     muls.l    #3,d1
  4410.     lea    1(a0),a1
  4411.     move.b    0(a1,d1.l),d1
  4412.     lea    -$1918(a5),a1
  4413.     lea    0(a1,d0.l*4),a1
  4414.     move.b    d1,1(a1)
  4415. ;                     rgba[i][BCOMP] = src[i*3+2
  4416.     move.l    d0,d1
  4417.     muls.l    #3,d1
  4418.     lea    2(a0),a1
  4419.     move.b    0(a1,d1.l),d1
  4420.     lea    -$1918(a5),a1
  4421.     lea    0(a1,d0.l*4),a1
  4422.     move.b    d1,2(a1)
  4423. ;                     rgba[i][ACOMP] = 255;
  4424.     lea    -$1918(a5),a1
  4425.     lea    0(a1,d0.l*4),a1
  4426.     move.b    #$FF,3(a1)
  4427.     addq.l    #1,d0
  4428. L1035
  4429.     cmp.l    d2,d0
  4430.     blt.b    L1034
  4431. L1036
  4432. ;                  
  4433.     bra.b    L1040
  4434. L1037
  4435. ;                  gl_problem( ctx, "error 1 in gl_
  4436.     move.l    #L992,-(a7)
  4437.     move.l    a2,-(a7)
  4438.     jsr    _gl_problem
  4439.     addq.w    #$8,a7
  4440. ;                  
  4441.     bra.b    L1040
  4442. L1038
  4443. ;                  gl_problem( ctx, "GL_COLOR_INDEX
  4444.     move.l    #L993,-(a7)
  4445.     move.l    a2,-(a7)
  4446.     jsr    _gl_problem
  4447.     addq.w    #$8,a7
  4448. ;                  
  4449.     bra.b    L1040
  4450. L1039
  4451. ;                  gl_problem( ctx, "bad format in 
  4452.     move.l    #L994,-(a7)
  4453.     move.l    a2,-(a7)
  4454.     jsr    _gl_problem
  4455.     addq.w    #$8,a7
  4456. L1040
  4457. ;            gl_pack_rgba_span( ctx, width, (CONST GLubyt
  4458.     move.l    a4,-(a7)
  4459.     move.l    d5,-(a7)
  4460.     move.l    d4,-(a7)
  4461.     pea    -$1918(a5)
  4462.     move.l    d2,-(a7)
  4463.     move.l    a2,-(a7)
  4464.     jsr    _gl_pack_rgba_span
  4465.     add.w    #$18,a7
  4466. L1041
  4467.     addq.l    #1,d3
  4468. L1042
  4469.     cmp.l    d7,d3
  4470.     blt    L1014
  4471. L1043
  4472.     movem.l    (a7)+,d2-d7/a2-a4
  4473.     unlk    a5
  4474.     rts
  4475.  
  4476. L993
  4477.     dc.b    'GL_COLOR_INDEX not implemented in gl_GetTexImage',0
  4478. L994
  4479.     dc.b    'bad format in gl_GetTexImage',0
  4480. L992
  4481.     dc.b    'error 1 in gl_GetTexImage',0
  4482. L987
  4483.     dc.b    'glGetTexImage',0
  4484. L990
  4485.     dc.b    'glGetTexImage(format)',0
  4486. L988
  4487.     dc.b    'glGetTexImage(level)',0
  4488. L991
  4489.     dc.b    'glGetTexImage(target)',0
  4490. L989
  4491.     dc.b    'glGetTexImage(type)',0
  4492.  
  4493.     SECTION "_gl_unpack_texsubimage:0",CODE
  4494.  
  4495.  
  4496. ;struct gl_image *
  4497.     XDEF    _gl_unpack_texsubimage
  4498. _gl_unpack_texsubimage
  4499.     movem.l    d2-d5/a2/a3,-(a7)
  4500.     movem.l    $28(a7),d2/d3/a3
  4501.     movem.l    $20(a7),d4/d5
  4502.     move.l    $1C(a7),a2
  4503. L1049
  4504. ;   if (type==GL_BITMAP && format!=GL_COLOR_INDEX) 
  4505.     cmp.l    #$1A00,d3
  4506.     bne.b    L1052
  4507. L1050
  4508.     cmp.l    #$1900,d2
  4509.     beq.b    L1052
  4510. L1051
  4511.     moveq    #0,d0
  4512.     movem.l    (a7)+,d2-d5/a2/a3
  4513.     rts
  4514. L1052
  4515. ;   if (format==GL_STENCIL_INDEX || format==GL_DEPTH_COMPONENT)
  4516.     cmp.l    #$1901,d2
  4517.     beq.b    L1054
  4518. L1053
  4519.     cmp.l    #$1902,d2
  4520.     bne.b    L1055
  4521. L1054
  4522.     moveq    #0,d0
  4523.     movem.l    (a7)+,d2-d5/a2/a3
  4524.     rts
  4525. L1055
  4526. ;   if (gl_sizeof_type(type)<=0) 
  4527.     move.l    d3,-(a7)
  4528.     jsr    _gl_sizeof_type
  4529.     addq.w    #4,a7
  4530.     cmp.l    #0,d0
  4531.     bgt.b    L1057
  4532. L1056
  4533.     moveq    #0,d0
  4534.     movem.l    (a7)+,d2-d5/a2/a3
  4535.     rts
  4536. L1057
  4537.     move.l    a3,-(a7)
  4538.     move.l    d3,-(a7)
  4539.     move.l    d2,-(a7)
  4540.     pea    1.w
  4541.     move.l    d5,-(a7)
  4542.     move.l    d4,-(a7)
  4543.     move.l    a2,-(a7)
  4544.     jsr    _gl_unpack_image3D
  4545.     add.w    #$1C,a7
  4546.     movem.l    (a7)+,d2-d5/a2/a3
  4547.     rts
  4548.  
  4549.     SECTION "_gl_unpack_texsubimage3D:0",CODE
  4550.  
  4551.  
  4552. ;struct gl_image *
  4553.     XDEF    _gl_unpack_texsubimage3D
  4554. _gl_unpack_texsubimage3D
  4555.     movem.l    d2-d6/a2/a3,-(a7)
  4556.     movem.l    $30(a7),d2/d3/a3
  4557.     movem.l    $24(a7),d4-d6
  4558.     move.l    $20(a7),a2
  4559. L1058
  4560. ;   if (type==GL_BITMAP && format!=GL_COLOR_INDEX) 
  4561.     cmp.l    #$1A00,d3
  4562.     bne.b    L1061
  4563. L1059
  4564.     cmp.l    #$1900,d2
  4565.     beq.b    L1061
  4566. L1060
  4567.     moveq    #0,d0
  4568.     movem.l    (a7)+,d2-d6/a2/a3
  4569.     rts
  4570. L1061
  4571. ;   if (format==GL_STENCIL_INDEX || format==GL_DEPTH_COMPONENT)
  4572.     cmp.l    #$1901,d2
  4573.     beq.b    L1063
  4574. L1062
  4575.     cmp.l    #$1902,d2
  4576.     bne.b    L1064
  4577. L1063
  4578.     moveq    #0,d0
  4579.     movem.l    (a7)+,d2-d6/a2/a3
  4580.     rts
  4581. L1064
  4582. ;   if (gl_sizeof_type(type)<=0) 
  4583.     move.l    d3,-(a7)
  4584.     jsr    _gl_sizeof_type
  4585.     addq.w    #4,a7
  4586.     cmp.l    #0,d0
  4587.     bgt.b    L1066
  4588. L1065
  4589.     moveq    #0,d0
  4590.     movem.l    (a7)+,d2-d6/a2/a3
  4591.     rts
  4592. L1066
  4593.     move.l    a3,-(a7)
  4594.     move.l    d3,-(a7)
  4595.     move.l    d2,-(a7)
  4596.     move.l    d6,-(a7)
  4597.     move.l    d5,-(a7)
  4598.     move.l    d4,-(a7)
  4599.     move.l    a2,-(a7)
  4600.     jsr    _gl_unpack_image3D
  4601.     add.w    #$1C,a7
  4602.     movem.l    (a7)+,d2-d6/a2/a3
  4603.     rts
  4604.  
  4605.     SECTION "_gl_TexSubImage1D:0",CODE
  4606.  
  4607.  
  4608. ;void gl_TexSubImage1D( GLcontext *ctx,
  4609.     XDEF    _gl_TexSubImage1D
  4610. _gl_TexSubImage1D
  4611. L1111    EQU    -$48
  4612.     link    a5,#L1111
  4613.     movem.l    d2-d7/a2-a4,-(a7)
  4614.     movem.l    $C(a5),d1/d2/d5
  4615.     movem.l    $1C(a5),d3/d7
  4616.     move.l    $18(a5),d4
  4617.     move.l    $8(a5),a2
  4618. L1075
  4619. ;   struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
  4620.     move.l    a2,a1
  4621.     add.l    #$DEC6,a1
  4622.     move.l    a2,a0
  4623.     add.l    #$DEBA,a0
  4624.     move.l    (a0),d0
  4625.     muls.l    #$BC,d0
  4626.     add.l    a1,d0
  4627.     move.l    d0,-4(a5)
  4628. ;   if (target!=GL_TEXTURE_1D) 
  4629.     cmp.l    #$DE0,d1
  4630.     beq.b    L1077
  4631. L1076
  4632. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(target)
  4633.     move.l    #L1067,-(a7)
  4634.     pea    $500.w
  4635.     move.l    a2,-(a7)
  4636.     jsr    _gl_error
  4637.     add.w    #$C,a7
  4638.     movem.l    (a7)+,d2-d7/a2-a4
  4639.     unlk    a5
  4640.     rts
  4641. L1077
  4642. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  4643.     tst.l    d2
  4644.     bmi.b    L1079
  4645. L1078
  4646.     cmp.l    #$B,d2
  4647.     blt.b    L1080
  4648. L1079
  4649. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(level)"
  4650.     move.l    #L1068,-(a7)
  4651.     pea    $500.w
  4652.     move.l    a2,-(a7)
  4653.     jsr    _gl_error
  4654.     add.w    #$C,a7
  4655.     movem.l    (a7)+,d2-d7/a2-a4
  4656.     unlk    a5
  4657.     rts
  4658. L1080
  4659. ;   destTex = texSet->Current1D->Image[level];
  4660.     move.l    -4(a5),a1
  4661.     move.l    $A8(a1),a0
  4662.     lea    $50(a0),a0
  4663.     move.l    0(a0,d2.l*4),a4
  4664. ;   if (!destTex) 
  4665.     cmp.w    #0,a4
  4666.     bne.b    L1082
  4667. L1081
  4668. ;      gl_error( ctx, GL_INVALID_OPERATION, "glTexSubImage1D" );
  4669.     move.l    #L1069,-(a7)
  4670.     pea    $502.w
  4671.     move.l    a2,-(a7)
  4672.     jsr    _gl_error
  4673.     add.w    #$C,a7
  4674.     movem.l    (a7)+,d2-d7/a2-a4
  4675.     unlk    a5
  4676.     rts
  4677. L1082
  4678. ;   if (xoffset < -((GLint)destTex->Border)) 
  4679.     move.l    a4,a0
  4680.     move.l    $8(a0),d0
  4681.     neg.l    d0
  4682.     cmp.l    d0,d5
  4683.     bge.b    L1084
  4684. L1083
  4685. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage1D(xoffse
  4686.     move.l    #L1070,-(a7)
  4687.     pea    $501.w
  4688.     move.l    a2,-(a7)
  4689.     jsr    _gl_error
  4690.     add.w    #$C,a7
  4691.     movem.l    (a7)+,d2-d7/a2-a4
  4692.     unlk    a5
  4693.     rts
  4694. L1084
  4695. ;   if (xoffset + width > (GLint) (destTex->Width + destTex->Borde
  4696.     move.l    d5,d0
  4697.     add.l    d4,d0
  4698.     move.l    d0,d6
  4699.     move.l    a4,a0
  4700.     move.l    $C(a0),d0
  4701.     move.l    a4,a0
  4702.     add.l    $8(a0),d0
  4703.     move.l    d6,d1
  4704.     cmp.l    d0,d1
  4705.     ble.b    L1086
  4706. L1085
  4707. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage1D(xoffse
  4708.     move.l    #L1071,-(a7)
  4709.     pea    $501.w
  4710.     move.l    a2,-(a7)
  4711.     jsr    _gl_error
  4712.     add.w    #$C,a7
  4713.     movem.l    (a7)+,d2-d7/a2-a4
  4714.     unlk    a5
  4715.     rts
  4716. L1086
  4717. ;   if (image) 
  4718.     tst.l    $24(a5)
  4719.     beq    L1098
  4720. L1087
  4721. ;      GLint texcomponents = components_in_intformat(destTex->F
  4722.     move.l    a4,a0
  4723.     move.l    (a0),-(a7)
  4724.     jsr    _components_in_intformat
  4725.     addq.w    #4,a7
  4726.     move.l    d0,d3
  4727. ;      if (image->Type==GL_UNSIGNED_BYTE && texcomponents==imag
  4728.     move.l    $24(a5),a0
  4729.     move.l    $14(a0),d0
  4730.     cmp.l    #$1401,d0
  4731.     bne.b    L1090
  4732. L1088
  4733.     move.l    $24(a5),a0
  4734.     cmp.l    $C(a0),d3
  4735.     bne.b    L1090
  4736. L1089
  4737. ;         GLubyte *dst = destTex->Data + texcomponents * xof
  4738.     move.l    a4,a1
  4739.     move.l    d3,d0
  4740.     muls.l    d5,d0
  4741.     move.l    $34(a1),a0
  4742.     lea    0(a0,d0.l),a1
  4743. ;         GLubyte *src = (GLubyte *) image->Data;
  4744.     move.l    $24(a5),a3
  4745. ;         MEMCPY( ds
  4746.     move.l    d4,d0
  4747.     muls.l    d3,d0
  4748.     move.l    d0,-(a7)
  4749.     move.l    $18(a3),-(a7)
  4750.     move.l    a1,-(a7)
  4751.     jsr    _q_memcpy
  4752.     add.w    #$C,a7
  4753.     bra.b    L1091
  4754. L1090
  4755. ;         struct gl_texture_image *subTexImg = image_to_text
  4756.     move.l    a4,a0
  4757.     move.l    $8(a0),-(a7)
  4758.     move.l    a4,a0
  4759.     move.l    4(a0),-(a7)
  4760.     move.l    $24(a5),-(a7)
  4761.     move.l    a2,-(a7)
  4762.     jsr    _image_to_texture
  4763.     add.w    #$10,a7
  4764.     move.l    d0,-$10(a5)
  4765. ;         GLubyte *dst = destTex->Data + texcomponents * xof
  4766.     move.l    a4,a1
  4767.     move.l    d3,d0
  4768.     muls.l    d5,d0
  4769.     move.l    $34(a1),a0
  4770.     lea    0(a0,d0.l),a1
  4771. ;         GLubyte *src = subTexImg->Data;
  4772.     move.l    -$10(a5),a3
  4773. ;         MEMCPY( ds
  4774.     move.l    d4,d0
  4775.     muls.l    d3,d0
  4776.     move.l    d0,-(a7)
  4777.     move.l    $34(a3),-(a7)
  4778.     move.l    a1,-(a7)
  4779.     jsr    _q_memcpy
  4780.     add.w    #$C,a7
  4781. ;         gl_free_texture_image(subTexImg);
  4782.     move.l    -$10(a5),-(a7)
  4783.     jsr    _gl_free_texture_image
  4784.     addq.w    #4,a7
  4785. L1091
  4786. ;      if (image->RefCount==0) 
  4787.     move.l    $24(a5),a0
  4788.     tst.l    $1E(a0)
  4789.     bne.b    L1093
  4790. L1092
  4791. ;         gl_free_image(image);
  4792.     move.l    $24(a5),-(a7)
  4793.     jsr    _gl_free_image
  4794.     addq.w    #4,a7
  4795. L1093
  4796. ;      texSet->Current1D->Dirty = GL_TRUE;
  4797.     move.l    -4(a5),a1
  4798.     move.l    $A8(a1),a0
  4799.     move.b    #1,$488(a0)
  4800. ;      ctx->Texture.AnyDirty = GL_TRUE;
  4801.     move.l    a2,a0
  4802.     add.l    #$E03E,a0
  4803.     move.b    #1,(a0)
  4804. ;      if (ctx->Driver.TexSubImage) 
  4805.     tst.l    $9CC(a2)
  4806.     beq.b    L1095
  4807. L1094
  4808. ;        (*ctx->Driver.TexSubImage)( ctx, GL_TEXTURE_1D,
  4809.     move.l    a4,-(a7)
  4810.     move.l    -4(a5),a1
  4811.     move.l    $A8(a1),a0
  4812.     lea    $50(a0),a0
  4813.     move.l    0(a0,d2.l*4),a0
  4814.     move.l    4(a0),-(a7)
  4815.     pea    1.w
  4816.     move.l    d4,-(a7)
  4817.     clr.l    -(a7)
  4818.     move.l    d5,-(a7)
  4819.     move.l    d2,-(a7)
  4820.     move.l    -4(a5),a1
  4821.     move.l    $A8(a1),-(a7)
  4822.     pea    $DE0.w
  4823.     move.l    a2,-(a7)
  4824.     move.l    $9CC(a2),a0
  4825.     jsr    (a0)
  4826.     add.w    #$28,a7
  4827.     bra.b    L1097
  4828. L1095
  4829. ;        if (ctx->Driver.TexImage) 
  4830.     tst.l    $9C8(a2)
  4831.     beq.b    L1097
  4832. L1096
  4833. ;          (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_1D, tex
  4834.     move.l    a4,-(a7)
  4835.     move.l    -4(a5),a1
  4836.     move.l    $A8(a1),a0
  4837.     lea    $50(a0),a0
  4838.     move.l    0(a0,d2.l*4),a0
  4839.     move.l    4(a0),-(a7)
  4840.     move.l    d2,-(a7)
  4841.     move.l    -4(a5),a1
  4842.     move.l    $A8(a1),-(a7)
  4843.     pea    $DE0.w
  4844.     move.l    a2,-(a7)
  4845.     move.l    $9C8(a2),a0
  4846.     jsr    (a0)
  4847.     add.w    #$18,a7
  4848. L1097
  4849.     bra    L1110
  4850. L1098
  4851. ;      if (width<0) 
  4852.     tst.l    d4
  4853.     bpl.b    L1100
  4854. L1099
  4855. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage1D(
  4856.     move.l    #L1072,-(a7)
  4857.     pea    $501.w
  4858.     move.l    a2,-(a7)
  4859.     jsr    _gl_error
  4860.     add.w    #$C,a7
  4861.     movem.l    (a7)+,d2-d7/a2-a4
  4862.     unlk    a5
  4863.     rts
  4864. L1100
  4865. ;      if (type==GL_BITMAP && format!=GL_COLOR_INDEX) 
  4866.     move.l    d7,d0
  4867.     cmp.l    #$1A00,d0
  4868.     bne.b    L1103
  4869. L1101
  4870.     cmp.l    #$1900,d3
  4871.     beq.b    L1103
  4872. L1102
  4873. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(f
  4874.     move.l    #L1073,-(a7)
  4875.     pea    $500.w
  4876.     move.l    a2,-(a7)
  4877.     jsr    _gl_error
  4878.     add.w    #$C,a7
  4879.     movem.l    (a7)+,d2-d7/a2-a4
  4880.     unlk    a5
  4881.     rts
  4882. L1103
  4883. ;      components = components_in_intformat( format );
  4884.     move.l    d3,-(a7)
  4885.     jsr    _components_in_intformat
  4886.     addq.w    #4,a7
  4887. ;      if (components<0 || format==GL_STENCIL_INDEX
  4888.     tst.l    d0
  4889.     bmi.b    L1106
  4890. L1104
  4891.     cmp.l    #$1901,d3
  4892.     beq.b    L1106
  4893. L1105
  4894.     cmp.l    #$1902,d3
  4895.     bne.b    L1107
  4896. L1106
  4897. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(f
  4898.     move.l    #L1073,-(a7)
  4899.     pea    $500.w
  4900.     move.l    a2,-(a7)
  4901.     jsr    _gl_error
  4902.     add.w    #$C,a7
  4903.     movem.l    (a7)+,d2-d7/a2-a4
  4904.     unlk    a5
  4905.     rts
  4906. L1107
  4907. ;      size = gl_sizeof_type( type );
  4908.     move.l    d7,-(a7)
  4909.     jsr    _gl_sizeof_type
  4910.     addq.w    #4,a7
  4911. ;      if (size<=0) 
  4912.     cmp.l    #0,d0
  4913.     bgt.b    L1109
  4914. L1108
  4915. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(t
  4916.     move.l    #L1074,-(a7)
  4917.     pea    $500.w
  4918.     move.l    a2,-(a7)
  4919.     jsr    _gl_error
  4920.     add.w    #$C,a7
  4921.     movem.l    (a7)+,d2-d7/a2-a4
  4922.     unlk    a5
  4923.     rts
  4924. L1109
  4925. ;      gl_error( ctx, GL_OUT_OF_MEMORY, "glTexSubImage1D" );
  4926.     move.l    #L1069,-(a7)
  4927.     pea    $505.w
  4928.     move.l    a2,-(a7)
  4929.     jsr    _gl_error
  4930.     add.w    #$C,a7
  4931. L1110
  4932.     movem.l    (a7)+,d2-d7/a2-a4
  4933.     unlk    a5
  4934.     rts
  4935.  
  4936. L1069
  4937.     dc.b    'glTexSubImage1D',0
  4938. L1073
  4939.     dc.b    'glTexSubImage1D(format)',0
  4940. L1068
  4941.     dc.b    'glTexSubImage1D(level)',0
  4942. L1067
  4943.     dc.b    'glTexSubImage1D(target)',0
  4944. L1074
  4945.     dc.b    'glTexSubImage1D(type)',0
  4946. L1072
  4947.     dc.b    'glTexSubImage1D(width)',0
  4948. L1070
  4949.     dc.b    'glTexSubImage1D(xoffset)',0
  4950. L1071
  4951.     dc.b    'glTexSubImage1D(xoffset+width)',0
  4952.  
  4953.     SECTION "_gl_TexSubImage2D:0",CODE
  4954.  
  4955.  
  4956. ;                  + (yoffset * destTex->W
  4957.     XDEF    _gl_TexSubImage2D
  4958. _gl_TexSubImage2D
  4959. L1172    EQU    -$54
  4960.     link    a5,#L1172
  4961.     movem.l    d2-d7/a2-a4,-(a7)
  4962.     movem.l    $C(a5),d1/d7
  4963.     movem.l    $24(a5),d2/d4
  4964.     movem.l    $1C(a5),d3/d5
  4965.     move.l    $8(a5),a3
  4966. L1124
  4967. ;   struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
  4968.     move.l    a3,a1
  4969.     add.l    #$DEC6,a1
  4970.     move.l    a3,a0
  4971.     add.l    #$DEBA,a0
  4972.     move.l    (a0),d0
  4973.     muls.l    #$BC,d0
  4974.     add.l    a1,d0
  4975.     move.l    d0,-4(a5)
  4976. ;   if (target!=GL_TEXTURE_2D) 
  4977.     cmp.l    #$DE1,d1
  4978.     beq.b    L1126
  4979. L1125
  4980. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(target)
  4981.     move.l    #L1112,-(a7)
  4982.     pea    $500.w
  4983.     move.l    a3,-(a7)
  4984.     jsr    _gl_error
  4985.     add.w    #$C,a7
  4986.     movem.l    (a7)+,d2-d7/a2-a4
  4987.     unlk    a5
  4988.     rts
  4989. L1126
  4990. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  4991.     tst.l    d7
  4992.     bmi.b    L1128
  4993. L1127
  4994.     move.l    d7,d0
  4995.     cmp.l    #$B,d0
  4996.     blt.b    L1129
  4997. L1128
  4998. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(level)"
  4999.     move.l    #L1113,-(a7)
  5000.     pea    $500.w
  5001.     move.l    a3,-(a7)
  5002.     jsr    _gl_error
  5003.     add.w    #$C,a7
  5004.     movem.l    (a7)+,d2-d7/a2-a4
  5005.     unlk    a5
  5006.     rts
  5007. L1129
  5008. ;   destTex = texSet->Current2D->Image[level];
  5009.     move.l    -4(a5),a1
  5010.     move.l    $AC(a1),a0
  5011.     lea    $50(a0),a0
  5012.     move.l    d7,d0
  5013.     move.l    0(a0,d0.l*4),a2
  5014. ;   if (!destTex) 
  5015.     cmp.w    #0,a2
  5016.     bne.b    L1131
  5017. L1130
  5018. ;      gl_error( ctx, GL_INVALID_OPERATION, "glTexSubImage2D" );
  5019.     move.l    #L1114,-(a7)
  5020.     pea    $502.w
  5021.     move.l    a3,-(a7)
  5022.     jsr    _gl_error
  5023.     add.w    #$C,a7
  5024.     movem.l    (a7)+,d2-d7/a2-a4
  5025.     unlk    a5
  5026.     rts
  5027. L1131
  5028. ;   if (xoffset < -((GLint)destTex->Border)) 
  5029.     move.l    $8(a2),d0
  5030.     neg.l    d0
  5031.     move.l    $14(a5),d1
  5032.     cmp.l    d0,d1
  5033.     bge.b    L1133
  5034. L1132
  5035. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(xoffse
  5036.     move.l    #L1115,-(a7)
  5037.     pea    $501.w
  5038.     move.l    a3,-(a7)
  5039.     jsr    _gl_error
  5040.     add.w    #$C,a7
  5041.     movem.l    (a7)+,d2-d7/a2-a4
  5042.     unlk    a5
  5043.     rts
  5044. L1133
  5045. ;   if (yoffset < -((GLint)destTex->Border)) 
  5046.     move.l    $8(a2),d0
  5047.     neg.l    d0
  5048.     move.l    $18(a5),d1
  5049.     cmp.l    d0,d1
  5050.     bge.b    L1135
  5051. L1134
  5052. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(yoffse
  5053.     move.l    #L1116,-(a7)
  5054.     pea    $501.w
  5055.     move.l    a3,-(a7)
  5056.     jsr    _gl_error
  5057.     add.w    #$C,a7
  5058.     movem.l    (a7)+,d2-d7/a2-a4
  5059.     unlk    a5
  5060.     rts
  5061. L1135
  5062. ;   if (xoffset + width > (GLint) (destTex->Width + destTex->Borde
  5063.     move.l    $14(a5),d0
  5064.     add.l    d3,d0
  5065.     move.l    d0,d6
  5066.     move.l    $C(a2),d0
  5067.     add.l    $8(a2),d0
  5068.     move.l    d6,d1
  5069.     cmp.l    d0,d1
  5070.     ble.b    L1137
  5071. L1136
  5072. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(xoffse
  5073.     move.l    #L1117,-(a7)
  5074.     pea    $501.w
  5075.     move.l    a3,-(a7)
  5076.     jsr    _gl_error
  5077.     add.w    #$C,a7
  5078.     movem.l    (a7)+,d2-d7/a2-a4
  5079.     unlk    a5
  5080.     rts
  5081. L1137
  5082. ;   if (yoffset + height > (GLint) (destTex->Height + destTex->Bor
  5083.     move.l    $18(a5),d0
  5084.     add.l    d5,d0
  5085.     move.l    d0,d6
  5086.     move.l    $10(a2),d0
  5087.     add.l    $8(a2),d0
  5088.     move.l    d6,d1
  5089.     cmp.l    d0,d1
  5090.     ble.b    L1139
  5091. L1138
  5092. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(yoffse
  5093.     move.l    #L1118,-(a7)
  5094.     pea    $501.w
  5095.     move.l    a3,-(a7)
  5096.     jsr    _gl_error
  5097.     add.w    #$C,a7
  5098.     movem.l    (a7)+,d2-d7/a2-a4
  5099.     unlk    a5
  5100.     rts
  5101. L1139
  5102. ;   if (image) 
  5103.     tst.l    $2C(a5)
  5104.     beq    L1157
  5105. L1140
  5106. ;      GLint texcomponents = components_in_intformat(destTex->F
  5107.     move.l    (a2),-(a7)
  5108.     jsr    _components_in_intformat
  5109.     addq.w    #4,a7
  5110.     move.l    d0,d2
  5111. ;      if (image->Type==GL_UNSIGNED_BYTE && texcomponents==imag
  5112.     move.l    $2C(a5),a0
  5113.     move.l    $14(a0),d0
  5114.     cmp.l    #$1401,d0
  5115.     bne.b    L1146
  5116. L1141
  5117.     move.l    $2C(a5),a0
  5118.     cmp.l    $C(a0),d2
  5119.     bne.b    L1146
  5120. L1142
  5121. ;         GLubyte *dst = destTex->Data 
  5122.     move.l    $C(a2),d0
  5123.     mulu.l    $18(a5),d0
  5124.     add.l    $14(a5),d0
  5125.     mulu.l    d2,d0
  5126.     add.l    $34(a2),d0
  5127.     move.l    d0,-$10(a5)
  5128. ;         GLubyte *src = (GLubyte *) image->Data;
  5129.     move.l    $2C(a5),a0
  5130.     move.l    $18(a0),a4
  5131. ;         for (j=0;
  5132.     moveq    #0,d4
  5133.     bra.b    L1144
  5134. L1143
  5135. ;           MEMCPY
  5136.     move.l    d3,d0
  5137.     muls.l    d2,d0
  5138.     move.l    d0,-(a7)
  5139.     move.l    a4,-(a7)
  5140.     move.l    -$10(a5),-(a7)
  5141.     jsr    _q_memcpy
  5142.     add.w    #$C,a7
  5143. ;            dst += destTex->Width * texcomponents * size
  5144.     move.l    $C(a2),d0
  5145.     mulu.l    d2,d0
  5146.     add.l    -$10(a5),d0
  5147.     move.l    d0,-$10(a5)
  5148. ;            src += width * texcomponents * sizeof(GLubyt
  5149.     move.l    d3,d0
  5150.     muls.l    d2,d0
  5151.     add.l    a4,d0
  5152.     move.l    d0,a4
  5153.     addq.l    #1,d4
  5154. L1144
  5155.     cmp.l    d5,d4
  5156.     blt.b    L1143
  5157. L1145
  5158.     bra    L1150
  5159. L1146
  5160. ;         struct gl_texture_image *subTexImg = image_to_text
  5161.     move.l    $8(a2),-(a7)
  5162.     move.l    4(a2),-(a7)
  5163.     move.l    $2C(a5),-(a7)
  5164.     move.l    a3,-(a7)
  5165.     jsr    _image_to_texture
  5166.     add.w    #$10,a7
  5167.     move.l    d0,-$10(a5)
  5168. ;         GLubyte *dst = destTex->Data
  5169.     move.l    $C(a2),d0
  5170.     mulu.l    $18(a5),d0
  5171.     add.l    $14(a5),d0
  5172.     mulu.l    d2,d0
  5173.     add.l    $34(a2),d0
  5174.     move.l    d0,-$14(a5)
  5175. ;         GLubyte *src = subTexImg->Data;
  5176.     move.l    -$10(a5),a0
  5177.     move.l    $34(a0),a4
  5178. ;         for (j=0;
  5179.     moveq    #0,d4
  5180.     bra.b    L1148
  5181. L1147
  5182. ;           MEMCPY
  5183.     move.l    d3,d0
  5184.     muls.l    d2,d0
  5185.     move.l    d0,-(a7)
  5186.     move.l    a4,-(a7)
  5187.     move.l    -$14(a5),-(a7)
  5188.     jsr    _q_memcpy
  5189.     add.w    #$C,a7
  5190. ;            dst += destTex->Width * texcomponents * size
  5191.     move.l    $C(a2),d0
  5192.     mulu.l    d2,d0
  5193.     add.l    -$14(a5),d0
  5194.     move.l    d0,-$14(a5)
  5195. ;            src += width * texcomponents * sizeof(GLubyt
  5196.     move.l    d3,d0
  5197.     muls.l    d2,d0
  5198.     add.l    a4,d0
  5199.     move.l    d0,a4
  5200.     addq.l    #1,d4
  5201. L1148
  5202.     cmp.l    d5,d4
  5203.     blt.b    L1147
  5204. L1149
  5205. ;         gl_free_texture_image(subTexImg);
  5206.     move.l    -$10(a5),-(a7)
  5207.     jsr    _gl_free_texture_image
  5208.     addq.w    #4,a7
  5209. L1150
  5210. ;      if (image->RefCount==0) 
  5211.     move.l    $2C(a5),a0
  5212.     tst.l    $1E(a0)
  5213.     bne.b    L1152
  5214. L1151
  5215. ;         gl_free_image(image);
  5216.     move.l    $2C(a5),-(a7)
  5217.     jsr    _gl_free_image
  5218.     addq.w    #4,a7
  5219. L1152
  5220. ;      texSet->Current2D->Dirty = GL_TRUE;
  5221.     move.l    -4(a5),a1
  5222.     move.l    $AC(a1),a0
  5223.     move.b    #1,$488(a0)
  5224. ;      ctx->Texture.AnyDirty = GL_TRUE;
  5225.     move.l    a3,a0
  5226.     add.l    #$E03E,a0
  5227.     move.b    #1,(a0)
  5228. ;      if (ctx->Driver.TexSubImage) 
  5229.     tst.l    $9CC(a3)
  5230.     beq.b    L1154
  5231. L1153
  5232. ;        (*ctx->Driver.TexSubImage)( ctx, GL_TEXTURE_2D, texS
  5233.     move.l    a2,-(a7)
  5234.     move.l    -4(a5),a1
  5235.     move.l    $AC(a1),a0
  5236.     lea    $50(a0),a0
  5237.     move.l    d7,d0
  5238.     move.l    0(a0,d0.l*4),a0
  5239.     move.l    4(a0),-(a7)
  5240.     move.l    d5,-(a7)
  5241.     move.l    d3,-(a7)
  5242.     move.l    $18(a5),-(a7)
  5243.     move.l    $14(a5),-(a7)
  5244.     move.l    d7,-(a7)
  5245.     move.l    -4(a5),a1
  5246.     move.l    $AC(a1),-(a7)
  5247.     pea    $DE1.w
  5248.     move.l    a3,-(a7)
  5249.     move.l    $9CC(a3),a0
  5250.     jsr    (a0)
  5251.     add.w    #$28,a7
  5252.     bra.b    L1156
  5253. L1154
  5254. ;        if (ctx->Driver.TexImage) 
  5255.     tst.l    $9C8(a3)
  5256.     beq.b    L1156
  5257. L1155
  5258. ;          (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_2D, tex
  5259.     move.l    a2,-(a7)
  5260.     move.l    -4(a5),a1
  5261.     move.l    $AC(a1),a0
  5262.     lea    $50(a0),a0
  5263.     move.l    d7,d0
  5264.     move.l    0(a0,d0.l*4),a0
  5265.     move.l    4(a0),-(a7)
  5266.     move.l    d7,-(a7)
  5267.     move.l    -4(a5),a1
  5268.     move.l    $AC(a1),-(a7)
  5269.     pea    $DE1.w
  5270.     move.l    a3,-(a7)
  5271.     move.l    $9C8(a3),a0
  5272.     jsr    (a0)
  5273.     add.w    #$18,a7
  5274. L1156
  5275.     bra    L1171
  5276. L1157
  5277. ;      if (width<0) 
  5278.     tst.l    d3
  5279.     bpl.b    L1159
  5280. L1158
  5281. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(
  5282.     move.l    #L1119,-(a7)
  5283.     pea    $501.w
  5284.     move.l    a3,-(a7)
  5285.     jsr    _gl_error
  5286.     add.w    #$C,a7
  5287.     movem.l    (a7)+,d2-d7/a2-a4
  5288.     unlk    a5
  5289.     rts
  5290. L1159
  5291. ;      if (height<0) 
  5292.     tst.l    d5
  5293.     bpl.b    L1161
  5294. L1160
  5295. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(
  5296.     move.l    #L1120,-(a7)
  5297.     pea    $501.w
  5298.     move.l    a3,-(a7)
  5299.     jsr    _gl_error
  5300.     add.w    #$C,a7
  5301.     movem.l    (a7)+,d2-d7/a2-a4
  5302.     unlk    a5
  5303.     rts
  5304. L1161
  5305. ;      if (type==GL_BITMAP && format!=GL_COLOR_INDEX) 
  5306.     cmp.l    #$1A00,d4
  5307.     bne.b    L1164
  5308. L1162
  5309.     cmp.l    #$1900,d2
  5310.     beq.b    L1164
  5311. L1163
  5312. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(f
  5313.     move.l    #L1121,-(a7)
  5314.     pea    $500.w
  5315.     move.l    a3,-(a7)
  5316.     jsr    _gl_error
  5317.     add.w    #$C,a7
  5318.     movem.l    (a7)+,d2-d7/a2-a4
  5319.     unlk    a5
  5320.     rts
  5321. L1164
  5322. ;      components = gl_components_in_format( format );
  5323.     move.l    d2,-(a7)
  5324.     jsr    _gl_components_in_format
  5325.     addq.w    #4,a7
  5326. ;      if (components<0 || format==GL_STENCIL_INDEX
  5327.     tst.l    d0
  5328.     bmi.b    L1167
  5329. L1165
  5330.     cmp.l    #$1901,d2
  5331.     beq.b    L1167
  5332. L1166
  5333.     cmp.l    #$1902,d2
  5334.     bne.b    L1168
  5335. L1167
  5336. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(f
  5337.     move.l    #L1122,-(a7)
  5338.     pea    $500.w
  5339.     move.l    a3,-(a7)
  5340.     jsr    _gl_error
  5341.     add.w    #$C,a7
  5342.     movem.l    (a7)+,d2-d7/a2-a4
  5343.     unlk    a5
  5344.     rts
  5345. L1168
  5346. ;      size = gl_sizeof_type( type );
  5347.     move.l    d4,-(a7)
  5348.     jsr    _gl_sizeof_type
  5349.     addq.w    #4,a7
  5350. ;      if (size<=0) 
  5351.     cmp.l    #0,d0
  5352.     bgt.b    L1170
  5353. L1169
  5354. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(t
  5355.     move.l    #L1123,-(a7)
  5356.     pea    $500.w
  5357.     move.l    a3,-(a7)
  5358.     jsr    _gl_error
  5359.     add.w    #$C,a7
  5360.     movem.l    (a7)+,d2-d7/a2-a4
  5361.     unlk    a5
  5362.     rts
  5363. L1170
  5364. ;      gl_error( ctx, GL_OUT_OF_MEMORY, "glTexSubImage2D" );
  5365.     move.l    #L1114,-(a7)
  5366.     pea    $505.w
  5367.     move.l    a3,-(a7)
  5368.     jsr    _gl_error
  5369.     add.w    #$C,a7
  5370. L1171
  5371.     movem.l    (a7)+,d2-d7/a2-a4
  5372.     unlk    a5
  5373.     rts
  5374.  
  5375. L1121
  5376.     dc.b    'glTexSubImage1D(format)',0
  5377. L1114
  5378.     dc.b    'glTexSubImage2D',0
  5379. L1122
  5380.     dc.b    'glTexSubImage2D(format)',0
  5381. L1120
  5382.     dc.b    'glTexSubImage2D(height)',0
  5383. L1113
  5384.     dc.b    'glTexSubImage2D(level)',0
  5385. L1112
  5386.     dc.b    'glTexSubImage2D(target)',0
  5387. L1123
  5388.     dc.b    'glTexSubImage2D(type)',0
  5389. L1119
  5390.     dc.b    'glTexSubImage2D(width)',0
  5391. L1115
  5392.     dc.b    'glTexSubImage2D(xoffset)',0
  5393. L1117
  5394.     dc.b    'glTexSubImage2D(xoffset+width)',0
  5395. L1116
  5396.     dc.b    'glTexSubImage2D(yoffset)',0
  5397. L1118
  5398.     dc.b    'glTexSubImage2D(yoffset+height)',0
  5399.  
  5400.     SECTION "_gl_TexSubImage3DEXT:0",CODE
  5401.  
  5402.  
  5403. ;           for (j=0;j<height;j++) {
  5404.     XDEF    _gl_TexSubImage3DEXT
  5405. _gl_TexSubImage3DEXT
  5406. L1245    EQU    -$5C
  5407.     link    a5,#L1245
  5408.     movem.l    d2-d7/a2-a4,-(a7)
  5409.     move.l    $C(a5),d1
  5410.     move.l    $2C(a5),d2
  5411.     move.l    $20(a5),d3
  5412.     move.l    $1C(a5),d4
  5413.     move.l    $24(a5),d5
  5414.     move.l    $30(a5),d7
  5415. L1187
  5416. ;   struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
  5417.     move.l    $8(a5),a0
  5418.     move.l    a0,a1
  5419.     add.l    #$DEC6,a1
  5420.     move.l    $8(a5),a2
  5421.     move.l    a2,a0
  5422.     add.l    #$DEBA,a0
  5423.     move.l    (a0),d0
  5424.     muls.l    #$BC,d0
  5425.     add.l    a1,d0
  5426.     move.l    d0,-4(a5)
  5427. ;   if (target!=GL_TEXTURE_3D_EXT) 
  5428.     cmp.l    #$806F,d1
  5429.     beq.b    L1189
  5430. L1188
  5431. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEXT(targ
  5432.     move.l    #L1173,-(a7)
  5433.     pea    $500.w
  5434.     move.l    $8(a5),-(a7)
  5435.     jsr    _gl_error
  5436.     add.w    #$C,a7
  5437.     movem.l    (a7)+,d2-d7/a2-a4
  5438.     unlk    a5
  5439.     rts
  5440. L1189
  5441. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  5442.     tst.l    $10(a5)
  5443.     bmi.b    L1191
  5444. L1190
  5445.     move.l    $10(a5),d0
  5446.     cmp.l    #$B,d0
  5447.     blt.b    L1192
  5448. L1191
  5449. ;      gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEXT(leve
  5450.     move.l    #L1174,-(a7)
  5451.     pea    $500.w
  5452.     move.l    $8(a5),-(a7)
  5453.     jsr    _gl_error
  5454.     add.w    #$C,a7
  5455.     movem.l    (a7)+,d2-d7/a2-a4
  5456.     unlk    a5
  5457.     rts
  5458. L1192
  5459. ;   destTex = texSet->Current3D->Image[level];
  5460.     move.l    -4(a5),a1
  5461.     move.l    $B0(a1),a0
  5462.     lea    $50(a0),a0
  5463.     move.l    $10(a5),d0
  5464.     move.l    0(a0,d0.l*4),a4
  5465. ;   if (!destTex) 
  5466.     cmp.w    #0,a4
  5467.     bne.b    L1194
  5468. L1193
  5469. ;      gl_error( ctx, GL_INVALID_OPERATION, "glTexSubImage3DEXT
  5470.     move.l    #L1175,-(a7)
  5471.     pea    $502.w
  5472.     move.l    $8(a5),-(a7)
  5473.     jsr    _gl_error
  5474.     add.w    #$C,a7
  5475.     movem.l    (a7)+,d2-d7/a2-a4
  5476.     unlk    a5
  5477.     rts
  5478. L1194
  5479. ;   if (xoffset < -((GLint)destTex->Border)) 
  5480.     move.l    a4,a0
  5481.     move.l    $8(a0),d0
  5482.     neg.l    d0
  5483.     move.l    $14(a5),d1
  5484.     cmp.l    d0,d1
  5485.     bge.b    L1196
  5486. L1195
  5487. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(xof
  5488.     move.l    #L1176,-(a7)
  5489.     pea    $501.w
  5490.     move.l    $8(a5),-(a7)
  5491.     jsr    _gl_error
  5492.     add.w    #$C,a7
  5493.     movem.l    (a7)+,d2-d7/a2-a4
  5494.     unlk    a5
  5495.     rts
  5496. L1196
  5497. ;   if (yoffset < -((GLint)destTex->Border)) 
  5498.     move.l    a4,a0
  5499.     move.l    $8(a0),d0
  5500.     neg.l    d0
  5501.     move.l    $18(a5),d1
  5502.     cmp.l    d0,d1
  5503.     bge.b    L1198
  5504. L1197
  5505. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(yof
  5506.     move.l    #L1177,-(a7)
  5507.     pea    $501.w
  5508.     move.l    $8(a5),-(a7)
  5509.     jsr    _gl_error
  5510.     add.w    #$C,a7
  5511.     movem.l    (a7)+,d2-d7/a2-a4
  5512.     unlk    a5
  5513.     rts
  5514. L1198
  5515. ;   if (zoffset < -((GLint)destTex->Border)) 
  5516.     move.l    a4,a0
  5517.     move.l    $8(a0),d0
  5518.     neg.l    d0
  5519.     cmp.l    d0,d4
  5520.     bge.b    L1200
  5521. L1199
  5522. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(zof
  5523.     move.l    #L1178,-(a7)
  5524.     pea    $501.w
  5525.     move.l    $8(a5),-(a7)
  5526.     jsr    _gl_error
  5527.     add.w    #$C,a7
  5528.     movem.l    (a7)+,d2-d7/a2-a4
  5529.     unlk    a5
  5530.     rts
  5531. L1200
  5532. ;   if (xoffset + width > (GLint) (destTex->Width+destTex->Border))
  5533.     move.l    $14(a5),d0
  5534.     add.l    d3,d0
  5535.     move.l    d0,d6
  5536.     move.l    a4,a0
  5537.     move.l    $C(a0),d0
  5538.     move.l    a4,a0
  5539.     add.l    $8(a0),d0
  5540.     move.l    d6,d1
  5541.     cmp.l    d0,d1
  5542.     ble.b    L1202
  5543. L1201
  5544. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(xof
  5545.     move.l    #L1179,-(a7)
  5546.     pea    $501.w
  5547.     move.l    $8(a5),-(a7)
  5548.     jsr    _gl_error
  5549.     add.w    #$C,a7
  5550.     movem.l    (a7)+,d2-d7/a2-a4
  5551.     unlk    a5
  5552.     rts
  5553. L1202
  5554. ;   if (yoffset + height > (GLint) (destTex->Height+destTex->Borde
  5555.     move.l    $18(a5),d0
  5556.     add.l    d5,d0
  5557.     move.l    d0,d6
  5558.     move.l    a4,a0
  5559.     move.l    $10(a0),d0
  5560.     move.l    a4,a0
  5561.     add.l    $8(a0),d0
  5562.     move.l    d6,d1
  5563.     cmp.l    d0,d1
  5564.     ble.b    L1204
  5565. L1203
  5566. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(yof
  5567.     move.l    #L1180,-(a7)
  5568.     pea    $501.w
  5569.     move.l    $8(a5),-(a7)
  5570.     jsr    _gl_error
  5571.     add.w    #$C,a7
  5572.     movem.l    (a7)+,d2-d7/a2-a4
  5573.     unlk    a5
  5574.     rts
  5575. L1204
  5576. ;   if (zoffset + depth  > (GLint) (destTex->Depth+destTex->Border)
  5577.     move.l    d4,d0
  5578.     add.l    $28(a5),d0
  5579.     move.l    d0,d6
  5580.     move.l    a4,a0
  5581.     move.l    $14(a0),d0
  5582.     move.l    a4,a0
  5583.     add.l    $8(a0),d0
  5584.     move.l    d6,d1
  5585.     cmp.l    d0,d1
  5586.     ble.b    L1206
  5587. L1205
  5588. ;      gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(zof
  5589.     move.l    #L1181,-(a7)
  5590.     pea    $501.w
  5591.     move.l    $8(a5),-(a7)
  5592.     jsr    _gl_error
  5593.     add.w    #$C,a7
  5594.     movem.l    (a7)+,d2-d7/a2-a4
  5595.     unlk    a5
  5596.     rts
  5597. L1206
  5598. ;   if (image) 
  5599.     tst.l    $34(a5)
  5600.     beq    L1228
  5601. L1207
  5602. ;      GLint texcomponents = components_in_intformat(destTex->F
  5603.     move.l    a4,a0
  5604.     move.l    (a0),-(a7)
  5605.     jsr    _components_in_intformat
  5606.     addq.w    #4,a7
  5607.     move.l    d0,d2
  5608. ;      GLint dstRectArea = destTex->Width * destTex->Height;
  5609.     move.l    a4,a0
  5610.     move.l    $C(a0),d7
  5611.     move.l    a4,a0
  5612.     move.l    d7,d0
  5613.     mulu.l    $10(a0),d0
  5614.     move.l    d0,d7
  5615. ;      GLint srcRectArea = width * height;
  5616.     move.l    d3,d0
  5617.     muls.l    d5,d0
  5618.     move.l    d0,-$14(a5)
  5619. ;      if (image->Type==GL_UNSIGNED_BYTE && texcomponents==imag
  5620.     move.l    $34(a5),a0
  5621.     move.l    $14(a0),d0
  5622.     cmp.l    #$1401,d0
  5623.     bne    L1216
  5624. L1208
  5625.     move.l    $34(a5),a0
  5626.     cmp.l    $C(a0),d2
  5627.     bne    L1216
  5628. L1209
  5629. ;         GLubyte *dst = destTex->Data 
  5630.     move.l    a4,a1
  5631.     move.l    $34(a1),a0
  5632.     muls.l    d7,d4
  5633.     move.l    a4,a1
  5634.     move.l    $18(a5),d0
  5635.     mulu.l    $C(a1),d0
  5636.     move.l    d0,$18(a5)
  5637.     add.l    $18(a5),d4
  5638.     add.l    $14(a5),d4
  5639.     mulu.l    d2,d4
  5640.     move.l    d4,d0
  5641.     add.l    a0,d0
  5642.     move.l    d0,a3
  5643. ;         GLubyte *src = (GLubyte *) image->Data;
  5644.     move.l    $34(a5),a0
  5645.     move.l    $18(a0),a2
  5646. ;         for(k=0;
  5647.     moveq    #0,d6
  5648.     bra.b    L1214
  5649. L1210
  5650. ;           for (j=0;
  5651.     moveq    #0,d4
  5652.     bra.b    L1212
  5653. L1211
  5654. ;           MEMCPY
  5655.     move.l    d3,d0
  5656.     muls.l    d2,d0
  5657.     move.l    d0,-(a7)
  5658.     move.l    a2,-(a7)
  5659.     move.l    a3,-(a7)
  5660.     jsr    _q_memcpy
  5661.     add.w    #$C,a7
  5662. ;              dst += destTex->Width * texcomponents;
  5663.     move.l    a4,a0
  5664.     move.l    $C(a0),d0
  5665.     mulu.l    d2,d0
  5666.     add.l    a3,d0
  5667.     move.l    d0,a3
  5668. ;              src += width * texcomponents;
  5669.     move.l    d3,d0
  5670.     muls.l    d2,d0
  5671.     add.l    d0,a2
  5672.     addq.l    #1,d4
  5673. L1212
  5674.     cmp.l    d5,d4
  5675.     blt.b    L1211
  5676. L1213
  5677. ;           dst += dstRectArea * texcomponents * sizeof(GL
  5678.     move.l    d7,d0
  5679.     muls.l    d2,d0
  5680.     add.l    a3,d0
  5681.     move.l    d0,a3
  5682. ;           src += srcRectArea * texcomponents * sizeof(GL
  5683.     move.l    -$14(a5),d0
  5684.     muls.l    d2,d0
  5685.     add.l    d0,a2
  5686.     move.l    d6,d0
  5687.     addq.l    #1,d0
  5688.     move.l    d0,d6
  5689. L1214
  5690.     move.l    d6,d0
  5691.     cmp.l    $28(a5),d0
  5692.     blt.b    L1210
  5693. L1215
  5694.     bra    L1223
  5695. L1216
  5696. ;         struct gl_texture_image *subTexImg = image_to_text
  5697.     move.l    a4,a0
  5698.     move.l    $8(a0),-(a7)
  5699.     move.l    a4,a0
  5700.     move.l    4(a0),-(a7)
  5701.     move.l    $34(a5),-(a7)
  5702.     move.l    $8(a5),-(a7)
  5703.     jsr    _image_to_texture
  5704.     add.w    #$10,a7
  5705.     move.l    d0,-$18(a5)
  5706. ;         GLubyte *dst = destTex->Data 
  5707.     move.l    a4,a1
  5708.     move.l    $34(a1),a0
  5709.     muls.l    d7,d4
  5710.     move.l    a4,a1
  5711.     move.l    $18(a5),d0
  5712.     mulu.l    $C(a1),d0
  5713.     move.l    d0,$18(a5)
  5714.     add.l    $18(a5),d4
  5715.     add.l    $14(a5),d4
  5716.     mulu.l    d2,d4
  5717.     move.l    d4,d0
  5718.     add.l    a0,d0
  5719.     move.l    d0,a3
  5720. ;         GLubyte *src = subTexImg->Data;
  5721.     move.l    -$18(a5),a0
  5722.     move.l    $34(a0),a2
  5723. ;         for(k=0;
  5724.     moveq    #0,d6
  5725.     bra.b    L1221
  5726. L1217
  5727. ;           for (j=0;
  5728.     moveq    #0,d4
  5729.     bra.b    L1219
  5730. L1218
  5731. ;           MEMCPY
  5732.     move.l    d3,d0
  5733.     muls.l    d2,d0
  5734.     move.l    d0,-(a7)
  5735.     move.l    a2,-(a7)
  5736.     move.l    a3,-(a7)
  5737.     jsr    _q_memcpy
  5738.     add.w    #$C,a7
  5739. ;              dst += destTex->Width * texcomponents;
  5740.     move.l    a4,a0
  5741.     move.l    $C(a0),d0
  5742.     mulu.l    d2,d0
  5743.     add.l    a3,d0
  5744.     move.l    d0,a3
  5745. ;              src += width * texcomponents;
  5746.     move.l    d3,d0
  5747.     muls.l    d2,d0
  5748.     add.l    d0,a2
  5749.     addq.l    #1,d4
  5750. L1219
  5751.     cmp.l    d5,d4
  5752.     blt.b    L1218
  5753. L1220
  5754. ;           dst += dstRectArea * texcomponents * sizeof(GL
  5755.     move.l    d7,d0
  5756.     muls.l    d2,d0
  5757.     add.l    a3,d0
  5758.     move.l    d0,a3
  5759. ;           src += srcRectArea * texcomponents * sizeof(GL
  5760.     move.l    -$14(a5),d0
  5761.     muls.l    d2,d0
  5762.     add.l    d0,a2
  5763.     move.l    d6,d0
  5764.     addq.l    #1,d0
  5765.     move.l    d0,d6
  5766. L1221
  5767.     move.l    d6,d0
  5768.     cmp.l    $28(a5),d0
  5769.     blt.b    L1217
  5770. L1222
  5771. ;         gl_free_texture_image(subTexImg);
  5772.     move.l    -$18(a5),-(a7)
  5773.     jsr    _gl_free_texture_image
  5774.     addq.w    #4,a7
  5775. L1223
  5776. ;      if (image->RefCount==0) 
  5777.     move.l    $34(a5),a0
  5778.     tst.l    $1E(a0)
  5779.     bne.b    L1225
  5780. L1224
  5781. ;         gl_free_image(image);
  5782.     move.l    $34(a5),-(a7)
  5783.     jsr    _gl_free_image
  5784.     addq.w    #4,a7
  5785. L1225
  5786. ;      texSet->Current3D->Dirty = GL_TRUE;
  5787.     move.l    -4(a5),a1
  5788.     move.l    $B0(a1),a0
  5789.     move.b    #1,$488(a0)
  5790. ;      ctx->Texture.AnyDirty = GL_TRUE;
  5791.     move.l    $8(a5),a0
  5792.     add.l    #$E03E,a0
  5793.     move.b    #1,(a0)
  5794. ;      if (ctx->Driver.TexImage) 
  5795.     move.l    $8(a5),a1
  5796.     tst.l    $9C8(a1)
  5797.     beq.b    L1227
  5798. L1226
  5799. ;         (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_3D_EXT, t
  5800.     move.l    a4,-(a7)
  5801.     move.l    -4(a5),a1
  5802.     move.l    $B0(a1),a0
  5803.     lea    $50(a0),a0
  5804.     move.l    $10(a5),d0
  5805.     move.l    0(a0,d0.l*4),a0
  5806.     move.l    4(a0),-(a7)
  5807.     move.l    $10(a5),-(a7)
  5808.     move.l    -4(a5),a1
  5809.     move.l    $B0(a1),-(a7)
  5810.     move.l    #$806F,-(a7)
  5811.     move.l    $8(a5),-(a7)
  5812.     move.l    $8(a5),a1
  5813.     move.l    $9C8(a1),a0
  5814.     jsr    (a0)
  5815.     add.w    #$18,a7
  5816. L1227
  5817.     bra    L1244
  5818. L1228
  5819. ;      if (width<0) 
  5820.     tst.l    d3
  5821.     bpl.b    L1230
  5822. L1229
  5823. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DE
  5824.     move.l    #L1182,-(a7)
  5825.     pea    $501.w
  5826.     move.l    $8(a5),-(a7)
  5827.     jsr    _gl_error
  5828.     add.w    #$C,a7
  5829.     movem.l    (a7)+,d2-d7/a2-a4
  5830.     unlk    a5
  5831.     rts
  5832. L1230
  5833. ;      if (height<0) 
  5834.     tst.l    d5
  5835.     bpl.b    L1232
  5836. L1231
  5837. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DE
  5838.     move.l    #L1183,-(a7)
  5839.     pea    $501.w
  5840.     move.l    $8(a5),-(a7)
  5841.     jsr    _gl_error
  5842.     add.w    #$C,a7
  5843.     movem.l    (a7)+,d2-d7/a2-a4
  5844.     unlk    a5
  5845.     rts
  5846. L1232
  5847. ;      if (depth<0) 
  5848.     tst.l    $28(a5)
  5849.     bpl.b    L1234
  5850. L1233
  5851. ;         gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DE
  5852.     move.l    #L1184,-(a7)
  5853.     pea    $501.w
  5854.     move.l    $8(a5),-(a7)
  5855.     jsr    _gl_error
  5856.     add.w    #$C,a7
  5857.     movem.l    (a7)+,d2-d7/a2-a4
  5858.     unlk    a5
  5859.     rts
  5860. L1234
  5861. ;      if (type==GL_BITMAP && format!=GL_COLOR_INDEX) 
  5862.     move.l    d7,d0
  5863.     cmp.l    #$1A00,d0
  5864.     bne.b    L1237
  5865. L1235
  5866.     cmp.l    #$1900,d2
  5867.     beq.b    L1237
  5868. L1236
  5869. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEX
  5870.     move.l    #L1185,-(a7)
  5871.     pea    $500.w
  5872.     move.l    $8(a5),-(a7)
  5873.     jsr    _gl_error
  5874.     add.w    #$C,a7
  5875.     movem.l    (a7)+,d2-d7/a2-a4
  5876.     unlk    a5
  5877.     rts
  5878. L1237
  5879. ;      components = components_in_intformat( format );
  5880.     move.l    d2,-(a7)
  5881.     jsr    _components_in_intformat
  5882.     addq.w    #4,a7
  5883. ;      if (components<0 || format==GL_STENCIL_INDEX
  5884.     tst.l    d0
  5885.     bmi.b    L1240
  5886. L1238
  5887.     cmp.l    #$1901,d2
  5888.     beq.b    L1240
  5889. L1239
  5890.     cmp.l    #$1902,d2
  5891.     bne.b    L1241
  5892. L1240
  5893. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEX
  5894.     move.l    #L1185,-(a7)
  5895.     pea    $500.w
  5896.     move.l    $8(a5),-(a7)
  5897.     jsr    _gl_error
  5898.     add.w    #$C,a7
  5899.     movem.l    (a7)+,d2-d7/a2-a4
  5900.     unlk    a5
  5901.     rts
  5902. L1241
  5903. ;      size = gl_sizeof_type( type );
  5904.     move.l    d7,-(a7)
  5905.     jsr    _gl_sizeof_type
  5906.     addq.w    #4,a7
  5907. ;      if (size<=0) 
  5908.     cmp.l    #0,d0
  5909.     bgt.b    L1243
  5910. L1242
  5911. ;         gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEX
  5912.     move.l    #L1186,-(a7)
  5913.     pea    $500.w
  5914.     move.l    $8(a5),-(a7)
  5915.     jsr    _gl_error
  5916.     add.w    #$C,a7
  5917.     movem.l    (a7)+,d2-d7/a2-a4
  5918.     unlk    a5
  5919.     rts
  5920. L1243
  5921. ;      gl_error( ctx, GL_OUT_OF_MEMORY, "glTexSubImage3DEXT" );
  5922.     move.l    #L1175,-(a7)
  5923.     pea    $505.w
  5924.     move.l    $8(a5),-(a7)
  5925.     jsr    _gl_error
  5926.     add.w    #$C,a7
  5927. L1244
  5928.     movem.l    (a7)+,d2-d7/a2-a4
  5929.     unlk    a5
  5930.     rts
  5931.  
  5932. L1175
  5933.     dc.b    'glTexSubImage3DEXT',0
  5934. L1184
  5935.     dc.b    'glTexSubImage3DEXT(depth)',0
  5936. L1185
  5937.     dc.b    'glTexSubImage3DEXT(format)',0
  5938. L1183
  5939.     dc.b    'glTexSubImage3DEXT(height)',0
  5940. L1174
  5941.     dc.b    'glTexSubImage3DEXT(level)',0
  5942. L1173
  5943.     dc.b    'glTexSubImage3DEXT(target)',0
  5944. L1186
  5945.     dc.b    'glTexSubImage3DEXT(type)',0
  5946. L1182
  5947.     dc.b    'glTexSubImage3DEXT(width)',0
  5948. L1176
  5949.     dc.b    'glTexSubImage3DEXT(xoffset)',0
  5950. L1179
  5951.     dc.b    'glTexSubImage3DEXT(xoffset+width)',0
  5952. L1177
  5953.     dc.b    'glTexSubImage3DEXT(yoffset)',0
  5954. L1180
  5955.     dc.b    'glTexSubImage3DEXT(yoffset+height)',0
  5956. L1178
  5957.     dc.b    'glTexSubImage3DEXT(zoffset)',0
  5958. L1181
  5959.     dc.b    'glTexSubImage3DEXT(zoffset+depth)',0
  5960.  
  5961.     SECTION "_read_color_image:0",CODE
  5962.  
  5963.  
  5964. ;static struct gl_image *read_color_image( GLcontext *ctx, GLint x, G
  5965. _read_color_image
  5966. L1282    EQU    -$1914
  5967.     link    a5,#L1282
  5968.     movem.l    d2-d7/a2-a4,-(a7)
  5969.     movem.l    $14(a5),d2/d4/d5
  5970.     move.l    $C(a5),d7
  5971.     move.l    $8(a5),a3
  5972. L1247
  5973. ;   components = components_in_intformat( format );
  5974.     move.l    d5,-(a7)
  5975.     jsr    _components_in_intformat
  5976.     addq.w    #4,a7
  5977.     move.l    d0,d3
  5978. ;   image = (struct gl_image *) malloc( sizeof(struct gl_image) );
  5979.     pea    $22.w
  5980.     jsr    _malloc
  5981.     addq.w    #4,a7
  5982.     move.l    d0,a4
  5983. ;   if (image) 
  5984.     cmp.w    #0,a4
  5985.     beq.b    L1251
  5986. L1248
  5987. ;      image->Width = width;
  5988.     move.l    a4,a0
  5989.     move.l    d2,(a0)
  5990. ;      image->Height = height;
  5991.     move.l    a4,a0
  5992.     move.l    d4,4(a0)
  5993. ;      image->Depth = 1;
  5994.     move.l    a4,a0
  5995.     move.l    #1,$8(a0)
  5996. ;      image->Components = components;
  5997.     move.l    a4,a0
  5998.     move.l    d3,$C(a0)
  5999. ;      image->Format = format;
  6000.     move.l    a4,a0
  6001.     move.l    d5,$10(a0)
  6002. ;      image->Type = GL_UNSIGNED_BYTE;
  6003.     move.l    a4,a0
  6004.     move.l    #$1401,$14(a0)
  6005. ;      image->RefCount = 0;
  6006.     move.l    a4,a0
  6007.     clr.l    $1E(a0)
  6008. ;      image->Data = (GLubyte *) malloc( width * height * compo
  6009.     move.l    d2,d0
  6010.     muls.l    d4,d0
  6011.     muls.l    d3,d0
  6012.     move.l    d0,-(a7)
  6013.     jsr    _malloc
  6014.     addq.w    #4,a7
  6015.     move.l    a4,a1
  6016.     move.l    d0,$18(a1)
  6017. ;      if (!image->Data) 
  6018.     move.l    a4,a1
  6019.     tst.l    $18(a1)
  6020.     bne.b    L1250
  6021. L1249
  6022. ;         free(image);
  6023.     move.l    a4,-(a7)
  6024.     jsr    _free
  6025.     addq.w    #4,a7
  6026.     moveq    #0,d0
  6027.     movem.l    (a7)+,d2-d7/a2-a4
  6028.     unlk    a5
  6029.     rts
  6030. L1250
  6031. ;         return 
  6032.     bra.b    L1252
  6033. L1251
  6034.     moveq    #0,d0
  6035.     movem.l    (a7)+,d2-d7/a2-a4
  6036.     unlk    a5
  6037.     rts
  6038. L1252
  6039. ;   imgptr = (GLubyte *) image->Data;
  6040.     move.l    a4,a0
  6041.     move.l    $18(a0),a2
  6042. ;   (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Pixel.ReadBuffer );
  6043.     move.l    a3,a0
  6044.     add.l    #$B168,a0
  6045.     move.l    (a0),-(a7)
  6046.     move.l    a3,-(a7)
  6047.     move.l    $91C(a3),a0
  6048.     jsr    (a0)
  6049.     addq.w    #$8,a7
  6050. ;   for (j=0;
  6051.     moveq    #0,d3
  6052.     bra    L1280
  6053. L1253
  6054. ;      gl_read_rgba_span( ctx, width, x, y+j, rgba );
  6055.     pea    -$1914(a5)
  6056.     move.l    $10(a5),d0
  6057.     add.l    d3,d0
  6058.     move.l    d0,-(a7)
  6059.     move.l    d7,-(a7)
  6060.     move.l    d2,-(a7)
  6061.     move.l    a3,-(a7)
  6062.     jsr    _gl_read_rgba_span
  6063.     add.w    #$14,a7
  6064. ;      switch (format)
  6065.     move.l    d5,d0
  6066.     cmp.l    #$1909,d0
  6067.     beq.b    L1258
  6068.     bgt.b    L1283
  6069.     cmp.l    #$1907,d0
  6070.     beq    L1270
  6071.     bgt.b    L1284
  6072.     cmp.l    #$1906,d0
  6073.     beq.b    L1254
  6074.     bra    L1278
  6075. L1284
  6076.     bgt    L1274
  6077. L1283
  6078.     cmp.l    #$190A,d0
  6079.     beq.b    L1262
  6080.     cmp.l    #$8049,d0
  6081.     beq.b    L1266
  6082.     bra    L1278
  6083. ;         
  6084. L1254
  6085. ;            for (i=0;
  6086.     moveq    #0,d0
  6087.     bra.b    L1256
  6088. L1255
  6089. ;               *imgptr++ = rgba[i][ACOMP];
  6090.     lea    -$1914(a5),a0
  6091.     lea    0(a0,d0.l*4),a0
  6092.     move.b    3(a0),d1
  6093.     move.b    d1,(a2)+
  6094.     addq.l    #1,d0
  6095. L1256
  6096.     cmp.l    d2,d0
  6097.     blt.b    L1255
  6098. L1257
  6099. ;            
  6100.     bra    L1279
  6101. L1258
  6102. ;            for (i=0;
  6103.     moveq    #0,d0
  6104.     bra.b    L1260
  6105. L1259
  6106. ;               *imgptr++ = rgba[i][RCOMP];
  6107.     lea    -$1914(a5),a0
  6108.     move.b    0(a0,d0.l*4),d1
  6109.     move.b    d1,(a2)+
  6110.     addq.l    #1,d0
  6111. L1260
  6112.     cmp.l    d2,d0
  6113.     blt.b    L1259
  6114. L1261
  6115. ;            
  6116.     bra    L1279
  6117. L1262
  6118. ;            for (i=0;
  6119.     moveq    #0,d0
  6120.     bra.b    L1264
  6121. L1263
  6122. ;               *imgptr++ = rgba[i][RCOMP];
  6123.     lea    -$1914(a5),a0
  6124.     move.b    0(a0,d0.l*4),d1
  6125.     move.b    d1,(a2)+
  6126. ;               *imgptr++ = rgba[i][ACOMP];
  6127.     lea    -$1914(a5),a0
  6128.     lea    0(a0,d0.l*4),a0
  6129.     move.b    3(a0),d1
  6130.     move.b    d1,(a2)+
  6131.     addq.l    #1,d0
  6132. L1264
  6133.     cmp.l    d2,d0
  6134.     blt.b    L1263
  6135. L1265
  6136. ;            
  6137.     bra    L1279
  6138. L1266
  6139. ;            for (i=0;
  6140.     moveq    #0,d0
  6141.     bra.b    L1268
  6142. L1267
  6143. ;               *imgptr++ = rgba[i][RCOMP];
  6144.     lea    -$1914(a5),a0
  6145.     move.b    0(a0,d0.l*4),d1
  6146.     move.b    d1,(a2)+
  6147.     addq.l    #1,d0
  6148. L1268
  6149.     cmp.l    d2,d0
  6150.     blt.b    L1267
  6151. L1269
  6152. ;            
  6153.     bra    L1279
  6154. L1270
  6155. ;            for (i=0;
  6156.     moveq    #0,d0
  6157.     bra.b    L1272
  6158. L1271
  6159. ;               *imgptr++ = rgba[i][RCOMP];
  6160.     lea    -$1914(a5),a0
  6161.     move.b    0(a0,d0.l*4),d1
  6162.     move.b    d1,(a2)+
  6163. ;               *imgptr++ = rgba[i][GCOMP];
  6164.     lea    -$1914(a5),a0
  6165.     lea    0(a0,d0.l*4),a0
  6166.     move.b    1(a0),d1
  6167.     move.b    d1,(a2)+
  6168. ;               *imgptr++ = rgba[i][BCOMP];
  6169.     lea    -$1914(a5),a0
  6170.     lea    0(a0,d0.l*4),a0
  6171.     move.b    2(a0),d1
  6172.     move.b    d1,(a2)+
  6173.     addq.l    #1,d0
  6174. L1272
  6175.     cmp.l    d2,d0
  6176.     blt.b    L1271
  6177. L1273
  6178. ;            
  6179.     bra.b    L1279
  6180. L1274
  6181. ;            for (i=0;
  6182.     moveq    #0,d0
  6183.     bra.b    L1276
  6184. L1275
  6185. ;               *imgptr++ = rgba[i][RCOMP];
  6186.     lea    -$1914(a5),a0
  6187.     move.b    0(a0,d0.l*4),d1
  6188.     move.b    d1,(a2)+
  6189. ;               *imgptr++ = rgba[i][GCOMP];
  6190.     lea    -$1914(a5),a0
  6191.     lea    0(a0,d0.l*4),a0
  6192.     move.b    1(a0),d1
  6193.     move.b    d1,(a2)+
  6194. ;               *imgptr++ = rgba[i][BCOMP];
  6195.     lea    -$1914(a5),a0
  6196.     lea    0(a0,d0.l*4),a0
  6197.     move.b    2(a0),d1
  6198.     move.b    d1,(a2)+
  6199. ;               *imgptr++ = rgba[i][ACOMP];
  6200.     lea    -$1914(a5),a0
  6201.     lea    0(a0,d0.l*4),a0
  6202.     move.b    3(a0),d1
  6203.     move.b    d1,(a2)+
  6204.     addq.l    #1,d0
  6205. L1276
  6206.     cmp.l    d2,d0
  6207.     blt.b    L1275
  6208. L1277
  6209. ;            
  6210.     bra.b    L1279
  6211. L1278
  6212. ;            gl_problem(ctx, "Bad format in read_color_im
  6213.     move.l    #L1246,-(a7)
  6214.     move.l    a3,-(a7)
  6215.     jsr    _gl_problem
  6216.     addq.w    #$8,a7
  6217. ;            
  6218. L1279
  6219.     addq.l    #1,d3
  6220. L1280
  6221.     cmp.l    d4,d3
  6222.     blt    L1253
  6223. L1281
  6224. ;   (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Color.DrawBuffer );
  6225.     move.l    $21E2(a3),-(a7)
  6226.     move.l    a3,-(a7)
  6227.     move.l    $91C(a3),a0
  6228.     jsr    (a0)
  6229.     addq.w    #$8,a7
  6230.     move.l    a4,d0
  6231.     movem.l    (a7)+,d2-d7/a2-a4
  6232.     unlk    a5
  6233.     rts
  6234.  
  6235. L1246
  6236.     dc.b    'Bad format in read_color_image',0
  6237.  
  6238.     SECTION "_gl_CopyTexImage1D:0",CODE
  6239.  
  6240.  
  6241. ;void gl_CopyTexImage1D( GLcontext *ctx,
  6242.     XDEF    _gl_CopyTexImage1D
  6243. _gl_CopyTexImage1D
  6244. L1312    EQU    -$8
  6245.     link    a5,#L1312
  6246.     movem.l    d2-d7/a2,-(a7)
  6247.     movem.l    $20(a5),d2/d4
  6248.     movem.l    $14(a5),d3/d7
  6249.     move.l    $10(a5),d5
  6250.     move.l    $C(a5),d6
  6251.     move.l    $8(a5),a2
  6252. L1291
  6253. ;   if (INSIDE_BEGIN_END(ctx)) 
  6254.     move.l    a2,a0
  6255.     add.l    #$E968,a0
  6256.     move.l    (a0),d0
  6257.     cmp.l    #$1A00,d0
  6258.     beq.b    L1293
  6259. L1292
  6260. ;      gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexImage1D" )
  6261.     move.l    #L1285,-(a7)
  6262.     pea    $502.w
  6263.     move.l    a2,-(a7)
  6264.     jsr    _gl_error
  6265.     add.w    #$C,a7
  6266.     movem.l    (a7)+,d2-d7/a2
  6267.     unlk    a5
  6268.     rts
  6269. L1293
  6270. ;   if (target!=GL_TEXTURE_1D) 
  6271.     move.l    d6,d0
  6272.     cmp.l    #$DE0,d0
  6273.     beq.b    L1295
  6274. L1294
  6275. ;      gl_error( ctx, GL_INVALID_ENUM, "glCopyTexImage1D(target)
  6276.     move.l    #L1286,-(a7)
  6277.     pea    $500.w
  6278.     move.l    a2,-(a7)
  6279.     jsr    _gl_error
  6280.     add.w    #$C,a7
  6281.     movem.l    (a7)+,d2-d7/a2
  6282.     unlk    a5
  6283.     rts
  6284. L1295
  6285. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  6286.     tst.l    d5
  6287.     bmi.b    L1297
  6288. L1296
  6289.     cmp.l    #$B,d5
  6290.     blt.b    L1298
  6291. L1297
  6292. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage1D(level)
  6293.     move.l    #L1287,-(a7)
  6294.     pea    $501.w
  6295.     move.l    a2,-(a7)
  6296.     jsr    _gl_error
  6297.     add.w    #$C,a7
  6298.     movem.l    (a7)+,d2-d7/a2
  6299.     unlk    a5
  6300.     rts
  6301. L1298
  6302. ;   if (border!=0 && border!=1) 
  6303.     tst.l    d4
  6304.     beq.b    L1301
  6305. L1299
  6306.     cmp.l    #1,d4
  6307.     beq.b    L1301
  6308. L1300
  6309. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage1D(borde
  6310.     move.l    #L1288,-(a7)
  6311.     pea    $501.w
  6312.     move.l    a2,-(a7)
  6313.     jsr    _gl_error
  6314.     add.w    #$C,a7
  6315.     movem.l    (a7)+,d2-d7/a2
  6316.     unlk    a5
  6317.     rts
  6318. L1301
  6319. ;   if (width<2*border || width>2+MAX_TEXTURE_SIZE || width<0) 
  6320.     move.l    d4,d0
  6321.     moveq    #1,d1
  6322.     asl.l    d1,d0
  6323.     cmp.l    d0,d2
  6324.     blt.b    L1304
  6325. L1302
  6326.     cmp.l    #$402,d2
  6327.     bgt.b    L1304
  6328. L1303
  6329.     tst.l    d2
  6330.     bpl.b    L1305
  6331. L1304
  6332. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage1D(width)
  6333.     move.l    #L1289,-(a7)
  6334.     pea    $501.w
  6335.     move.l    a2,-(a7)
  6336.     jsr    _gl_error
  6337.     add.w    #$C,a7
  6338.     movem.l    (a7)+,d2-d7/a2
  6339.     unlk    a5
  6340.     rts
  6341. L1305
  6342. ;   format = decode_internal_format( internalformat );
  6343.     move.l    d3,-(a7)
  6344.     jsr    _decode_internal_format
  6345.     addq.w    #4,a7
  6346. ;   if (format<0 || (internalformat>=1 && internalformat<=4)) 
  6347.     tst.l    d0
  6348.     bmi.b    L1308
  6349. L1306
  6350.     cmp.l    #1,d3
  6351.     blt.b    L1309
  6352. L1307
  6353.     cmp.l    #4,d3
  6354.     bgt.b    L1309
  6355. L1308
  6356. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage1D(forma
  6357.     move.l    #L1290,-(a7)
  6358.     pea    $501.w
  6359.     move.l    a2,-(a7)
  6360.     jsr    _gl_error
  6361.     add.w    #$C,a7
  6362.     movem.l    (a7)+,d2-d7/a2
  6363.     unlk    a5
  6364.     rts
  6365. L1309
  6366. ;   teximage = read_color_image( ctx, x, y, width, 1, (GLenum) for
  6367.     move.l    d0,-(a7)
  6368.     pea    1.w
  6369.     move.l    d2,-(a7)
  6370.     move.l    $1C(a5),-(a7)
  6371.     move.l    d7,-(a7)
  6372.     move.l    a2,-(a7)
  6373.     jsr    _read_color_image
  6374.     add.w    #$18,a7
  6375.     move.l    d0,a0
  6376. ;   if (!teximage) 
  6377.     cmp.w    #0,a0
  6378.     bne.b    L1311
  6379. L1310
  6380. ;      gl_error( ctx, GL_OUT_OF_MEMORY, "glCopyTexImage1D" );
  6381.     move.l    #L1285,-(a7)
  6382.     pea    $505.w
  6383.     move.l    a2,-(a7)
  6384.     jsr    _gl_error
  6385.     add.w    #$C,a7
  6386.     movem.l    (a7)+,d2-d7/a2
  6387.     unlk    a5
  6388.     rts
  6389. L1311
  6390. ;   gl_TexImage1D( ctx, target, level, internalformat, width,
  6391.     move.l    a0,-(a7)
  6392.     pea    $1401.w
  6393.     pea    $1908.w
  6394.     move.l    d4,-(a7)
  6395.     move.l    d2,-(a7)
  6396.     move.l    d3,-(a7)
  6397.     move.l    d5,-(a7)
  6398.     move.l    d6,-(a7)
  6399.     move.l    a2,-(a7)
  6400.     jsr    _gl_TexImage1D
  6401.     add.w    #$24,a7
  6402.     movem.l    (a7)+,d2-d7/a2
  6403.     unlk    a5
  6404.     rts
  6405.  
  6406. L1285
  6407.     dc.b    'glCopyTexImage1D',0
  6408. L1288
  6409.     dc.b    'glCopyTexImage1D(border)',0
  6410. L1290
  6411.     dc.b    'glCopyTexImage1D(format)',0
  6412. L1287
  6413.     dc.b    'glCopyTexImage1D(level)',0
  6414. L1286
  6415.     dc.b    'glCopyTexImage1D(target)',0
  6416. L1289
  6417.     dc.b    'glCopyTexImage1D(width)',0
  6418.  
  6419.     SECTION "_gl_CopyTexImage2D:0",CODE
  6420.  
  6421.  
  6422. ;void gl_CopyTexImage2D( GLcontext *ctx,
  6423.     XDEF    _gl_CopyTexImage2D
  6424. _gl_CopyTexImage2D
  6425. L1345    EQU    -$8
  6426.     link    a5,#L1345
  6427.     movem.l    d2-d7/a2,-(a7)
  6428.     movem.l    $24(a5),d2/d4
  6429.     move.l    $20(a5),d3
  6430.     move.l    $14(a5),d5
  6431.     move.l    $10(a5),d6
  6432.     move.l    $C(a5),d7
  6433.     move.l    $8(a5),a2
  6434. L1320
  6435. ;   if (INSIDE_BEGIN_END(ctx)) 
  6436.     move.l    a2,a0
  6437.     add.l    #$E968,a0
  6438.     move.l    (a0),d0
  6439.     cmp.l    #$1A00,d0
  6440.     beq.b    L1322
  6441. L1321
  6442. ;      gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexImage2D" )
  6443.     move.l    #L1313,-(a7)
  6444.     pea    $502.w
  6445.     move.l    a2,-(a7)
  6446.     jsr    _gl_error
  6447.     add.w    #$C,a7
  6448.     movem.l    (a7)+,d2-d7/a2
  6449.     unlk    a5
  6450.     rts
  6451. L1322
  6452. ;   if (target!=GL_TEXTURE_2D) 
  6453.     move.l    d7,d0
  6454.     cmp.l    #$DE1,d0
  6455.     beq.b    L1324
  6456. L1323
  6457. ;      gl_error( ctx, GL_INVALID_ENUM, "glCopyTexImage2D(target)
  6458.     move.l    #L1314,-(a7)
  6459.     pea    $500.w
  6460.     move.l    a2,-(a7)
  6461.     jsr    _gl_error
  6462.     add.w    #$C,a7
  6463.     movem.l    (a7)+,d2-d7/a2
  6464.     unlk    a5
  6465.     rts
  6466. L1324
  6467. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  6468.     tst.l    d6
  6469.     bmi.b    L1326
  6470. L1325
  6471.     move.l    d6,d0
  6472.     cmp.l    #$B,d0
  6473.     blt.b    L1327
  6474. L1326
  6475. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(level)
  6476.     move.l    #L1315,-(a7)
  6477.     pea    $501.w
  6478.     move.l    a2,-(a7)
  6479.     jsr    _gl_error
  6480.     add.w    #$C,a7
  6481.     movem.l    (a7)+,d2-d7/a2
  6482.     unlk    a5
  6483.     rts
  6484. L1327
  6485. ;   if (border!=0 && border!=1) 
  6486.     tst.l    d4
  6487.     beq.b    L1330
  6488. L1328
  6489.     cmp.l    #1,d4
  6490.     beq.b    L1330
  6491. L1329
  6492. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(borde
  6493.     move.l    #L1316,-(a7)
  6494.     pea    $501.w
  6495.     move.l    a2,-(a7)
  6496.     jsr    _gl_error
  6497.     add.w    #$C,a7
  6498.     movem.l    (a7)+,d2-d7/a2
  6499.     unlk    a5
  6500.     rts
  6501. L1330
  6502. ;   if (width<2*border || width>2+MAX_TEXTURE_SIZE || width<0) 
  6503.     move.l    d4,d0
  6504.     moveq    #1,d1
  6505.     asl.l    d1,d0
  6506.     cmp.l    d0,d3
  6507.     blt.b    L1333
  6508. L1331
  6509.     cmp.l    #$402,d3
  6510.     bgt.b    L1333
  6511. L1332
  6512.     tst.l    d3
  6513.     bpl.b    L1334
  6514. L1333
  6515. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(width)
  6516.     move.l    #L1317,-(a7)
  6517.     pea    $501.w
  6518.     move.l    a2,-(a7)
  6519.     jsr    _gl_error
  6520.     add.w    #$C,a7
  6521.     movem.l    (a7)+,d2-d7/a2
  6522.     unlk    a5
  6523.     rts
  6524. L1334
  6525. ;   if (height<2*border || height>2+MAX_TEXTURE_SIZE || height<0) 
  6526.     move.l    d4,d0
  6527.     moveq    #1,d1
  6528.     asl.l    d1,d0
  6529.     cmp.l    d0,d2
  6530.     blt.b    L1337
  6531. L1335
  6532.     cmp.l    #$402,d2
  6533.     bgt.b    L1337
  6534. L1336
  6535.     tst.l    d2
  6536.     bpl.b    L1338
  6537. L1337
  6538. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(heigh
  6539.     move.l    #L1318,-(a7)
  6540.     pea    $501.w
  6541.     move.l    a2,-(a7)
  6542.     jsr    _gl_error
  6543.     add.w    #$C,a7
  6544.     movem.l    (a7)+,d2-d7/a2
  6545.     unlk    a5
  6546.     rts
  6547. L1338
  6548. ;   format = decode_internal_format( internalformat );
  6549.     move.l    d5,-(a7)
  6550.     jsr    _decode_internal_format
  6551.     addq.w    #4,a7
  6552. ;   if (format<0 || (internalformat>=1 && internalformat<=4)) 
  6553.     tst.l    d0
  6554.     bmi.b    L1341
  6555. L1339
  6556.     cmp.l    #1,d5
  6557.     blt.b    L1342
  6558. L1340
  6559.     cmp.l    #4,d5
  6560.     bgt.b    L1342
  6561. L1341
  6562. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(forma
  6563.     move.l    #L1319,-(a7)
  6564.     pea    $501.w
  6565.     move.l    a2,-(a7)
  6566.     jsr    _gl_error
  6567.     add.w    #$C,a7
  6568.     movem.l    (a7)+,d2-d7/a2
  6569.     unlk    a5
  6570.     rts
  6571. L1342
  6572. ;   teximage = read_color_image( ctx, x, y, width, height, (GLenum)
  6573.     move.l    d0,-(a7)
  6574.     move.l    d2,-(a7)
  6575.     move.l    d3,-(a7)
  6576.     move.l    $1C(a5),-(a7)
  6577.     move.l    $18(a5),-(a7)
  6578.     move.l    a2,-(a7)
  6579.     jsr    _read_color_image
  6580.     add.w    #$18,a7
  6581.     move.l    d0,a0
  6582. ;   if (!teximage) 
  6583.     cmp.w    #0,a0
  6584.     bne.b    L1344
  6585. L1343
  6586. ;      gl_error( ctx, GL_OUT_OF_MEMORY, "glCopyTexImage2D" );
  6587.     move.l    #L1313,-(a7)
  6588.     pea    $505.w
  6589.     move.l    a2,-(a7)
  6590.     jsr    _gl_error
  6591.     add.w    #$C,a7
  6592.     movem.l    (a7)+,d2-d7/a2
  6593.     unlk    a5
  6594.     rts
  6595. L1344
  6596. ;   gl_TexImage2D( ctx, target, level, internalformat, width, heig
  6597.     move.l    a0,-(a7)
  6598.     pea    $1401.w
  6599.     pea    $1908.w
  6600.     move.l    d4,-(a7)
  6601.     move.l    d2,-(a7)
  6602.     move.l    d3,-(a7)
  6603.     move.l    d5,-(a7)
  6604.     move.l    d6,-(a7)
  6605.     move.l    d7,-(a7)
  6606.     move.l    a2,-(a7)
  6607.     jsr    _gl_TexImage2D
  6608.     add.w    #$28,a7
  6609.     movem.l    (a7)+,d2-d7/a2
  6610.     unlk    a5
  6611.     rts
  6612.  
  6613. L1313
  6614.     dc.b    'glCopyTexImage2D',0
  6615. L1316
  6616.     dc.b    'glCopyTexImage2D(border)',0
  6617. L1319
  6618.     dc.b    'glCopyTexImage2D(format)',0
  6619. L1318
  6620.     dc.b    'glCopyTexImage2D(height)',0
  6621. L1315
  6622.     dc.b    'glCopyTexImage2D(level)',0
  6623. L1314
  6624.     dc.b    'glCopyTexImage2D(target)',0
  6625. L1317
  6626.     dc.b    'glCopyTexImage2D(width)',0
  6627.  
  6628.     SECTION "_copy_tex_sub_image:0",CODE
  6629.  
  6630.  
  6631. ;static void copy_tex_sub_image( GLcontext *ctx, struct gl_texture_im
  6632. _copy_tex_sub_image
  6633. L1375    EQU    -$1920
  6634.     link    a5,#L1375
  6635.     movem.l    d2-d7/a2/a3,-(a7)
  6636.     move.l    $10(a5),d2
  6637.     move.l    $28(a5),d5
  6638.     move.l    $8(a5),a2
  6639.     move.l    $C(a5),a3
  6640. L1346
  6641. ;   texwidth = dest->Width;
  6642.     move.l    a3,a0
  6643.     move.l    $C(a0),d7
  6644. ;   texheight = dest->Height;
  6645.     move.l    a3,a0
  6646. ;   rectarea = texwidth * texheight;
  6647.     move.l    $10(a0),d0
  6648.     muls.l    d7,d0
  6649. ;   zoffset *= rectarea;
  6650.     muls.l    d0,d5
  6651. ;   format = dest->Format;
  6652.     move.l    a3,a0
  6653.     move.l    (a0),d4
  6654. ;   components = components_in_intformat( format );
  6655.     move.l    d4,-(a7)
  6656.     jsr    _components_in_intformat
  6657.     addq.w    #4,a7
  6658.     move.l    d0,-$10(a5)
  6659. ;   (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Pixel.ReadBuffer );
  6660.     move.l    a2,a0
  6661.     add.l    #$B168,a0
  6662.     move.l    (a0),-(a7)
  6663.     move.l    a2,-(a7)
  6664.     move.l    $91C(a2),a0
  6665.     jsr    (a0)
  6666.     addq.w    #$8,a7
  6667. ;   for (j=0;
  6668.     moveq    #0,d3
  6669.     bra    L1373
  6670. L1347
  6671. ;      gl_read_rgba_span( ctx, width, srcx, srcy+j, rgba );
  6672.     pea    -$191C(a5)
  6673.     move.l    $1C(a5),d0
  6674.     add.l    d3,d0
  6675.     move.l    d0,-(a7)
  6676.     move.l    $18(a5),-(a7)
  6677.     move.l    d2,-(a7)
  6678.     move.l    a2,-(a7)
  6679.     jsr    _gl_read_rgba_span
  6680.     add.w    #$14,a7
  6681. ;      texptr = dest->Data + ( zoffset + (dsty+j) * texwidth + 
  6682.     move.l    a3,a1
  6683.     move.l    $24(a5),d0
  6684.     add.l    d3,d0
  6685.     muls.l    d7,d0
  6686.     add.l    d5,d0
  6687.     add.l    $20(a5),d0
  6688.     muls.l    -$10(a5),d0
  6689.     move.l    $34(a1),a0
  6690.     add.l    d0,a0
  6691. ;      switch (format)
  6692.     move.l    d4,d0
  6693.     cmp.l    #$1909,d0
  6694.     beq.b    L1352
  6695.     bgt.b    L1376
  6696.     cmp.l    #$1907,d0
  6697.     beq    L1364
  6698.     bgt.b    L1377
  6699.     cmp.l    #$1906,d0
  6700.     beq.b    L1348
  6701.     bra    L1372
  6702. L1377
  6703.     bgt    L1368
  6704. L1376
  6705.     cmp.l    #$190A,d0
  6706.     beq.b    L1356
  6707.     cmp.l    #$8049,d0
  6708.     beq.b    L1360
  6709.     bra    L1372
  6710. ;         
  6711. L1348
  6712. ;            for (i=0;
  6713.     moveq    #0,d0
  6714.     bra.b    L1350
  6715. L1349
  6716. ;               *texptr++ = rgba[i][ACOMP];
  6717.     lea    -$191C(a5),a1
  6718.     lea    0(a1,d0.l*4),a1
  6719.     move.b    3(a1),d1
  6720.     move.b    d1,(a0)+
  6721.     addq.l    #1,d0
  6722. L1350
  6723.     cmp.l    d2,d0
  6724.     blt.b    L1349
  6725. L1351
  6726. ;            
  6727.     bra    L1372
  6728. L1352
  6729. ;            for (i=0;
  6730.     moveq    #0,d0
  6731.     bra.b    L1354
  6732. L1353
  6733. ;               *texptr++ = rgba[i][RCOMP];
  6734.     lea    -$191C(a5),a1
  6735.     move.b    0(a1,d0.l*4),d1
  6736.     move.b    d1,(a0)+
  6737.     addq.l    #1,d0
  6738. L1354
  6739.     cmp.l    d2,d0
  6740.     blt.b    L1353
  6741. L1355
  6742. ;            
  6743.     bra    L1372
  6744. L1356
  6745. ;            for (i=0;
  6746.     moveq    #0,d0
  6747.     bra.b    L1358
  6748. L1357
  6749. ;               *texptr++ = rgba[i][RCOMP];
  6750.     lea    -$191C(a5),a1
  6751.     move.b    0(a1,d0.l*4),d1
  6752.     move.b    d1,(a0)+
  6753. ;               *texptr++ = rgba[i][ACOMP];
  6754.     lea    -$191C(a5),a1
  6755.     lea    0(a1,d0.l*4),a1
  6756.     move.b    3(a1),d1
  6757.     move.b    d1,(a0)+
  6758.     addq.l    #1,d0
  6759. L1358
  6760.     cmp.l    d2,d0
  6761.     blt.b    L1357
  6762. L1359
  6763. ;            
  6764.     bra    L1372
  6765. L1360
  6766. ;            for (i=0;
  6767.     moveq    #0,d0
  6768.     bra.b    L1362
  6769. L1361
  6770. ;               *texptr++ = rgba[i][RCOMP];
  6771.     lea    -$191C(a5),a1
  6772.     move.b    0(a1,d0.l*4),d1
  6773.     move.b    d1,(a0)+
  6774.     addq.l    #1,d0
  6775. L1362
  6776.     cmp.l    d2,d0
  6777.     blt.b    L1361
  6778. L1363
  6779. ;            
  6780.     bra.b    L1372
  6781. L1364
  6782. ;            for (i=0;
  6783.     moveq    #0,d0
  6784.     bra.b    L1366
  6785. L1365
  6786. ;               *texptr++ = rgba[i][RCOMP];
  6787.     lea    -$191C(a5),a1
  6788.     move.b    0(a1,d0.l*4),d1
  6789.     move.b    d1,(a0)+
  6790. ;               *texptr++ = rgba[i][GCOMP];
  6791.     lea    -$191C(a5),a1
  6792.     lea    0(a1,d0.l*4),a1
  6793.     move.b    1(a1),d1
  6794.     move.b    d1,(a0)+
  6795. ;               *texptr++ = rgba[i][BCOMP];
  6796.     lea    -$191C(a5),a1
  6797.     lea    0(a1,d0.l*4),a1
  6798.     move.b    2(a1),d1
  6799.     move.b    d1,(a0)+
  6800.     addq.l    #1,d0
  6801. L1366
  6802.     cmp.l    d2,d0
  6803.     blt.b    L1365
  6804. L1367
  6805. ;            
  6806.     bra.b    L1372
  6807. L1368
  6808. ;            for (i=0;
  6809.     moveq    #0,d0
  6810.     bra.b    L1370
  6811. L1369
  6812. ;               *texptr++ = rgba[i][RCOMP];
  6813.     lea    -$191C(a5),a1
  6814.     move.b    0(a1,d0.l*4),d1
  6815.     move.b    d1,(a0)+
  6816. ;               *texptr++ = rgba[i][GCOMP];
  6817.     lea    -$191C(a5),a1
  6818.     lea    0(a1,d0.l*4),a1
  6819.     move.b    1(a1),d1
  6820.     move.b    d1,(a0)+
  6821. ;               *texptr++ = rgba[i][BCOMP];
  6822.     lea    -$191C(a5),a1
  6823.     lea    0(a1,d0.l*4),a1
  6824.     move.b    2(a1),d1
  6825.     move.b    d1,(a0)+
  6826. ;               *texptr++ = rgba[i][ACOMP];
  6827.     lea    -$191C(a5),a1
  6828.     lea    0(a1,d0.l*4),a1
  6829.     move.b    3(a1),d1
  6830.     move.b    d1,(a0)+
  6831.     addq.l    #1,d0
  6832. L1370
  6833.     cmp.l    d2,d0
  6834.     blt.b    L1369
  6835. L1371
  6836. ;            
  6837. L1372
  6838.     addq.l    #1,d3
  6839. L1373
  6840.     cmp.l    $14(a5),d3
  6841.     blt    L1347
  6842. L1374
  6843. ;   (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Color.DrawBuffer );
  6844.     move.l    $21E2(a2),-(a7)
  6845.     move.l    a2,-(a7)
  6846.     move.l    $91C(a2),a0
  6847.     jsr    (a0)
  6848.     addq.w    #$8,a7
  6849.     movem.l    (a7)+,d2-d7/a2/a3
  6850.     unlk    a5
  6851.     rts
  6852.  
  6853.     SECTION "_gl_CopyTexSubImage1D:0",CODE
  6854.  
  6855.  
  6856. ;void gl_CopyTexSubImage1D( GLcontext *ctx,
  6857.     XDEF    _gl_CopyTexSubImage1D
  6858. _gl_CopyTexSubImage1D
  6859.     movem.l    d2-d7/a2-a4,-(a7)
  6860.     movem.l    $2C(a7),d1-d3/d6/d7
  6861.     move.l    $40(a7),d4
  6862.     move.l    $28(a7),a2
  6863. L1384
  6864. ;   struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
  6865.     move.l    a2,a1
  6866.     add.l    #$DEC6,a1
  6867.     move.l    a2,a0
  6868.     add.l    #$DEBA,a0
  6869.     move.l    (a0),d0
  6870.     muls.l    #$BC,d0
  6871.     add.l    a1,d0
  6872.     move.l    d0,a4
  6873. ;   if (INSIDE_BEGIN_END(ctx)) 
  6874.     move.l    a2,a0
  6875.     add.l    #$E968,a0
  6876.     move.l    (a0),d0
  6877.     cmp.l    #$1A00,d0
  6878.     beq.b    L1386
  6879. L1385
  6880. ;      gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage1
  6881.     move.l    #L1378,-(a7)
  6882.     pea    $502.w
  6883.     move.l    a2,-(a7)
  6884.     jsr    _gl_error
  6885.     add.w    #$C,a7
  6886.     movem.l    (a7)+,d2-d7/a2-a4
  6887.     rts
  6888. L1386
  6889. ;   if (target!=GL_TEXTURE_1D) 
  6890.     cmp.l    #$DE0,d1
  6891.     beq.b    L1388
  6892. L1387
  6893. ;      gl_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage1D(tar
  6894.     move.l    #L1379,-(a7)
  6895.     pea    $500.w
  6896.     move.l    a2,-(a7)
  6897.     jsr    _gl_error
  6898.     add.w    #$C,a7
  6899.     movem.l    (a7)+,d2-d7/a2-a4
  6900.     rts
  6901. L1388
  6902. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  6903.     tst.l    d2
  6904.     bmi.b    L1390
  6905. L1389
  6906.     cmp.l    #$B,d2
  6907.     blt.b    L1391
  6908. L1390
  6909. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage1D(le
  6910.     move.l    #L1380,-(a7)
  6911.     pea    $501.w
  6912.     move.l    a2,-(a7)
  6913.     jsr    _gl_error
  6914.     add.w    #$C,a7
  6915.     movem.l    (a7)+,d2-d7/a2-a4
  6916.     rts
  6917. L1391
  6918. ;   if (width<0) 
  6919.     tst.l    d4
  6920.     bpl.b    L1393
  6921. L1392
  6922. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage1D(wi
  6923.     move.l    #L1381,-(a7)
  6924.     pea    $501.w
  6925.     move.l    a2,-(a7)
  6926.     jsr    _gl_error
  6927.     add.w    #$C,a7
  6928.     movem.l    (a7)+,d2-d7/a2-a4
  6929.     rts
  6930. L1393
  6931. ;   teximage = texSet->Current1D->Image[level];
  6932.     move.l    a4,a1
  6933.     move.l    $A8(a1),a0
  6934.     lea    $50(a0),a0
  6935.     move.l    0(a0,d2.l*4),a3
  6936. ;   if (teximage) 
  6937.     cmp.w    #0,a3
  6938.     beq    L1404
  6939. L1394
  6940. ;      if (xoffset < -((GLint)teximage->Border)) 
  6941.     move.l    a3,a0
  6942.     move.l    $8(a0),d0
  6943.     neg.l    d0
  6944.     cmp.l    d0,d3
  6945.     bge.b    L1396
  6946. L1395
  6947. ;         gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
  6948.     move.l    #L1382,-(a7)
  6949.     pea    $501.w
  6950.     move.l    a2,-(a7)
  6951.     jsr    _gl_error
  6952.     add.w    #$C,a7
  6953.     movem.l    (a7)+,d2-d7/a2-a4
  6954.     rts
  6955. L1396
  6956. ;      if (xoffset+width > (GLint) (teximage->Width+teximage->B
  6957.     move.l    d3,d5
  6958.     add.l    d4,d5
  6959.     move.l    a3,a0
  6960.     move.l    $C(a0),d0
  6961.     move.l    a3,a0
  6962.     add.l    $8(a0),d0
  6963.     cmp.l    d0,d5
  6964.     ble.b    L1398
  6965. L1397
  6966. ;         gl_error( ctx, GL_INVALID_VALUE,
  6967.     move.l    #L1383,-(a7)
  6968.     pea    $501.w
  6969.     move.l    a2,-(a7)
  6970.     jsr    _gl_error
  6971.     add.w    #$C,a7
  6972.     movem.l    (a7)+,d2-d7/a2-a4
  6973.     rts
  6974. L1398
  6975. ;      if (teximage->Data) 
  6976.     move.l    a3,a1
  6977.     tst.l    $34(a1)
  6978.     beq.b    L1403
  6979. L1399
  6980. ;         copy_tex_sub_image( ctx, teximage, width, 1, x, y,
  6981.     clr.l    -(a7)
  6982.     clr.l    -(a7)
  6983.     move.l    d3,-(a7)
  6984.     move.l    d7,-(a7)
  6985.     move.l    d6,-(a7)
  6986.     pea    1.w
  6987.     move.l    d4,-(a7)
  6988.     move.l    a3,-(a7)
  6989.     move.l    a2,-(a7)
  6990.     jsr    _copy_tex_sub_image
  6991.     add.w    #$24,a7
  6992. ;         if (ctx->Driver.TexSubImage) 
  6993.     tst.l    $9CC(a2)
  6994.     beq.b    L1401
  6995. L1400
  6996. ;      if (teximage->Data) {
  6997.     move.l    a3,-(a7)
  6998.     move.l    a3,a0
  6999.     move.l    4(a0),-(a7)
  7000.     pea    1.w
  7001.     move.l    d4,-(a7)
  7002.     clr.l    -(a7)
  7003.     move.l    d3,-(a7)
  7004.     move.l    d2,-(a7)
  7005.     move.l    a4,a1
  7006.     move.l    $A8(a1),-(a7)
  7007.     pea    $DE0.w
  7008.     move.l    a2,-(a7)
  7009.     move.l    $9CC(a2),a0
  7010.     jsr    (a0)
  7011.     add.w    #$28,a7
  7012.     bra.b    L1403
  7013. L1401
  7014. ;           if (ctx->Driver.TexImage) 
  7015.     tst.l    $9C8(a2)
  7016.     beq.b    L1403
  7017. L1402
  7018. ;             (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_1
  7019.     move.l    a3,-(a7)
  7020.     move.l    a3,a0
  7021.     move.l    4(a0),-(a7)
  7022.     move.l    d2,-(a7)
  7023.     move.l    a4,a1
  7024.     move.l    $A8(a1),-(a7)
  7025.     pea    $DE0.w
  7026.     move.l    a2,-(a7)
  7027.     move.l    $9C8(a2),a0
  7028.     jsr    (a0)
  7029.     add.w    #$18,a7
  7030. L1403
  7031.     bra.b    L1405
  7032. L1404
  7033. ;      gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage1
  7034.     move.l    #L1378,-(a7)
  7035.     pea    $502.w
  7036.     move.l    a2,-(a7)
  7037.     jsr    _gl_error
  7038.     add.w    #$C,a7
  7039. L1405
  7040.     movem.l    (a7)+,d2-d7/a2-a4
  7041.     rts
  7042.  
  7043. L1378
  7044.     dc.b    'glCopyTexSubImage1D',0
  7045. L1380
  7046.     dc.b    'glCopyTexSubImage1D(level)',0
  7047. L1379
  7048.     dc.b    'glCopyTexSubImage1D(target)',0
  7049. L1381
  7050.     dc.b    'glCopyTexSubImage1D(width)',0
  7051. L1382
  7052.     dc.b    'glCopyTexSubImage1D(xoffset)',0
  7053. L1383
  7054.     dc.b    'glCopyTexSubImage1D(xoffset+width)',0
  7055.  
  7056.     SECTION "_gl_CopyTexSubImage2D:0",CODE
  7057.  
  7058.  
  7059. ;void gl_CopyTexSubImage2D( GLcontext *ctx,
  7060.     XDEF    _gl_CopyTexSubImage2D
  7061. _gl_CopyTexSubImage2D
  7062. L1443    EQU    -$8
  7063.     link    a5,#L1443
  7064.     movem.l    d2-d7/a2-a4,-(a7)
  7065.     movem.l    $C(a5),d1/d2/d4
  7066.     move.l    $18(a5),d3
  7067.     move.l    $28(a5),d5
  7068.     move.l    $24(a5),d7
  7069.     move.l    $8(a5),a2
  7070. L1415
  7071. ;   struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
  7072.     move.l    a2,a1
  7073.     add.l    #$DEC6,a1
  7074.     move.l    a2,a0
  7075.     add.l    #$DEBA,a0
  7076.     move.l    (a0),d0
  7077.     muls.l    #$BC,d0
  7078.     add.l    a1,d0
  7079.     move.l    d0,a4
  7080. ;   if (INSIDE_BEGIN_END(ctx)) 
  7081.     move.l    a2,a0
  7082.     add.l    #$E968,a0
  7083.     move.l    (a0),d0
  7084.     cmp.l    #$1A00,d0
  7085.     beq.b    L1417
  7086. L1416
  7087. ;      gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage2
  7088.     move.l    #L1406,-(a7)
  7089.     pea    $502.w
  7090.     move.l    a2,-(a7)
  7091.     jsr    _gl_error
  7092.     add.w    #$C,a7
  7093.     movem.l    (a7)+,d2-d7/a2-a4
  7094.     unlk    a5
  7095.     rts
  7096. L1417
  7097. ;   if (target!=GL_TEXTURE_2D) 
  7098.     cmp.l    #$DE1,d1
  7099.     beq.b    L1419
  7100. L1418
  7101. ;      gl_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage2D(tar
  7102.     move.l    #L1407,-(a7)
  7103.     pea    $500.w
  7104.     move.l    a2,-(a7)
  7105.     jsr    _gl_error
  7106.     add.w    #$C,a7
  7107.     movem.l    (a7)+,d2-d7/a2-a4
  7108.     unlk    a5
  7109.     rts
  7110. L1419
  7111. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  7112.     tst.l    d2
  7113.     bmi.b    L1421
  7114. L1420
  7115.     cmp.l    #$B,d2
  7116.     blt.b    L1422
  7117. L1421
  7118. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage2D(le
  7119.     move.l    #L1408,-(a7)
  7120.     pea    $501.w
  7121.     move.l    a2,-(a7)
  7122.     jsr    _gl_error
  7123.     add.w    #$C,a7
  7124.     movem.l    (a7)+,d2-d7/a2-a4
  7125.     unlk    a5
  7126.     rts
  7127. L1422
  7128. ;   if (width<0) 
  7129.     tst.l    d7
  7130.     bpl.b    L1424
  7131. L1423
  7132. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage2D(wi
  7133.     move.l    #L1409,-(a7)
  7134.     pea    $501.w
  7135.     move.l    a2,-(a7)
  7136.     jsr    _gl_error
  7137.     add.w    #$C,a7
  7138.     movem.l    (a7)+,d2-d7/a2-a4
  7139.     unlk    a5
  7140.     rts
  7141. L1424
  7142. ;   if (height<0) 
  7143.     tst.l    d5
  7144.     bpl.b    L1426
  7145. L1425
  7146. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage2D(he
  7147.     move.l    #L1410,-(a7)
  7148.     pea    $501.w
  7149.     move.l    a2,-(a7)
  7150.     jsr    _gl_error
  7151.     add.w    #$C,a7
  7152.     movem.l    (a7)+,d2-d7/a2-a4
  7153.     unlk    a5
  7154.     rts
  7155. L1426
  7156. ;   teximage = texSet->Current2D->Image[level];
  7157.     move.l    a4,a1
  7158.     move.l    $AC(a1),a0
  7159.     lea    $50(a0),a0
  7160.     move.l    0(a0,d2.l*4),a3
  7161. ;   if (teximage) 
  7162.     cmp.w    #0,a3
  7163.     beq    L1441
  7164. L1427
  7165. ;      if (xoffset < -((GLint)teximage->Border)) 
  7166.     move.l    a3,a0
  7167.     move.l    $8(a0),d0
  7168.     neg.l    d0
  7169.     cmp.l    d0,d4
  7170.     bge.b    L1429
  7171. L1428
  7172. ;         gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
  7173.     move.l    #L1411,-(a7)
  7174.     pea    $501.w
  7175.     move.l    a2,-(a7)
  7176.     jsr    _gl_error
  7177.     add.w    #$C,a7
  7178.     movem.l    (a7)+,d2-d7/a2-a4
  7179.     unlk    a5
  7180.     rts
  7181. L1429
  7182. ;      if (yoffset < -((GLint)teximage->Border)) 
  7183.     move.l    a3,a0
  7184.     move.l    $8(a0),d0
  7185.     neg.l    d0
  7186.     cmp.l    d0,d3
  7187.     bge.b    L1431
  7188. L1430
  7189. ;         gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
  7190.     move.l    #L1412,-(a7)
  7191.     pea    $501.w
  7192.     move.l    a2,-(a7)
  7193.     jsr    _gl_error
  7194.     add.w    #$C,a7
  7195.     movem.l    (a7)+,d2-d7/a2-a4
  7196.     unlk    a5
  7197.     rts
  7198. L1431
  7199. ;      if (xoffset+width > (GLint) (teximage->Width+teximage->B
  7200.     move.l    d4,d0
  7201.     add.l    d7,d0
  7202.     move.l    d0,d6
  7203.     move.l    a3,a0
  7204.     move.l    $C(a0),d0
  7205.     move.l    a3,a0
  7206.     add.l    $8(a0),d0
  7207.     move.l    d6,d1
  7208.     cmp.l    d0,d1
  7209.     ble.b    L1433
  7210. L1432
  7211. ;         gl_error( ctx, GL_INVALID_VALUE,
  7212.     move.l    #L1413,-(a7)
  7213.     pea    $501.w
  7214.     move.l    a2,-(a7)
  7215.     jsr    _gl_error
  7216.     add.w    #$C,a7
  7217.     movem.l    (a7)+,d2-d7/a2-a4
  7218.     unlk    a5
  7219.     rts
  7220. L1433
  7221. ;      if (yoffset+height > (GLint) (teximage->Height+teximage-
  7222.     move.l    d3,d0
  7223.     add.l    d5,d0
  7224.     move.l    d0,d6
  7225.     move.l    a3,a0
  7226.     move.l    $10(a0),d0
  7227.     move.l    a3,a0
  7228.     add.l    $8(a0),d0
  7229.     move.l    d6,d1
  7230.     cmp.l    d0,d1
  7231.     ble.b    L1435
  7232. L1434
  7233. ;         gl_error( ctx, GL_INVALID_VALUE,
  7234.     move.l    #L1414,-(a7)
  7235.     pea    $501.w
  7236.     move.l    a2,-(a7)
  7237.     jsr    _gl_error
  7238.     add.w    #$C,a7
  7239.     movem.l    (a7)+,d2-d7/a2-a4
  7240.     unlk    a5
  7241.     rts
  7242. L1435
  7243. ;      if (teximage->Data) 
  7244.     move.l    a3,a1
  7245.     tst.l    $34(a1)
  7246.     beq.b    L1440
  7247. L1436
  7248. ;         copy_tex_sub_image( ctx, teximage, width, height,
  7249.     clr.l    -(a7)
  7250.     move.l    d3,-(a7)
  7251.     move.l    d4,-(a7)
  7252.     move.l    $20(a5),-(a7)
  7253.     move.l    $1C(a5),-(a7)
  7254.     move.l    d5,-(a7)
  7255.     move.l    d7,-(a7)
  7256.     move.l    a3,-(a7)
  7257.     move.l    a2,-(a7)
  7258.     jsr    _copy_tex_sub_image
  7259.     add.w    #$24,a7
  7260. ;         if (ctx->Driver.TexSubImage) 
  7261.     tst.l    $9CC(a2)
  7262.     beq.b    L1438
  7263. L1437
  7264. ;           (*ctx->Driver.TexSubImage)( ctx, GL_TEXTURE_2D
  7265.     move.l    a3,-(a7)
  7266.     move.l    a3,a0
  7267.     move.l    4(a0),-(a7)
  7268.     move.l    d5,-(a7)
  7269.     move.l    d7,-(a7)
  7270.     move.l    d3,-(a7)
  7271.     move.l    d4,-(a7)
  7272.     move.l    d2,-(a7)
  7273.     move.l    a4,a1
  7274.     move.l    $AC(a1),-(a7)
  7275.     pea    $DE1.w
  7276.     move.l    a2,-(a7)
  7277.     move.l    $9CC(a2),a0
  7278.     jsr    (a0)
  7279.     add.w    #$28,a7
  7280.     bra.b    L1440
  7281. L1438
  7282. ;           if (ctx->Driver.TexImage) 
  7283.     tst.l    $9C8(a2)
  7284.     beq.b    L1440
  7285. L1439
  7286. ;             (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_2
  7287.     move.l    a3,-(a7)
  7288.     move.l    a3,a0
  7289.     move.l    4(a0),-(a7)
  7290.     move.l    d2,-(a7)
  7291.     move.l    a4,a1
  7292.     move.l    $AC(a1),-(a7)
  7293.     pea    $DE1.w
  7294.     move.l    a2,-(a7)
  7295.     move.l    $9C8(a2),a0
  7296.     jsr    (a0)
  7297.     add.w    #$18,a7
  7298. L1440
  7299.     bra.b    L1442
  7300. L1441
  7301. ;      gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage2
  7302.     move.l    #L1406,-(a7)
  7303.     pea    $502.w
  7304.     move.l    a2,-(a7)
  7305.     jsr    _gl_error
  7306.     add.w    #$C,a7
  7307. L1442
  7308.     movem.l    (a7)+,d2-d7/a2-a4
  7309.     unlk    a5
  7310.     rts
  7311.  
  7312. L1406
  7313.     dc.b    'glCopyTexSubImage2D',0
  7314. L1410
  7315.     dc.b    'glCopyTexSubImage2D(height)',0
  7316. L1408
  7317.     dc.b    'glCopyTexSubImage2D(level)',0
  7318. L1407
  7319.     dc.b    'glCopyTexSubImage2D(target)',0
  7320. L1409
  7321.     dc.b    'glCopyTexSubImage2D(width)',0
  7322. L1411
  7323.     dc.b    'glCopyTexSubImage2D(xoffset)',0
  7324. L1413
  7325.     dc.b    'glCopyTexSubImage2D(xoffset+width)',0
  7326. L1412
  7327.     dc.b    'glCopyTexSubImage2D(yoffset)',0
  7328. L1414
  7329.     dc.b    'glCopyTexSubImage2D(yoffset+height)',0
  7330.  
  7331.     SECTION "_gl_CopyTexSubImage3DEXT:0",CODE
  7332.  
  7333.  
  7334. ;void gl_CopyTexSubImage3DEXT( GLcontext *ctx,
  7335.     XDEF    _gl_CopyTexSubImage3DEXT
  7336. _gl_CopyTexSubImage3DEXT
  7337. L1485    EQU    -$10
  7338.     link    a5,#L1485
  7339.     movem.l    d2-d7/a2-a4,-(a7)
  7340.     move.l    $1C(a5),d1
  7341.     move.l    $10(a5),d2
  7342.     move.l    $18(a5),d3
  7343.     move.l    $14(a5),d4
  7344.     move.l    $2C(a5),d5
  7345.     move.l    $28(a5),d7
  7346.     move.l    $8(a5),a2
  7347. L1455
  7348. ;   struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
  7349.     move.l    a2,a1
  7350.     add.l    #$DEC6,a1
  7351.     move.l    a2,a0
  7352.     add.l    #$DEBA,a0
  7353.     move.l    (a0),d0
  7354.     muls.l    #$BC,d0
  7355.     add.l    a1,d0
  7356.     move.l    d0,a4
  7357. ;   if (INSIDE_BEGIN_END(ctx)) 
  7358.     move.l    a2,a0
  7359.     add.l    #$E968,a0
  7360.     move.l    (a0),d0
  7361.     cmp.l    #$1A00,d0
  7362.     beq.b    L1457
  7363. L1456
  7364. ;      gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage3
  7365.     move.l    #L1444,-(a7)
  7366.     pea    $502.w
  7367.     move.l    a2,-(a7)
  7368.     jsr    _gl_error
  7369.     add.w    #$C,a7
  7370.     movem.l    (a7)+,d2-d7/a2-a4
  7371.     unlk    a5
  7372.     rts
  7373. L1457
  7374. ;   if (target!=GL_TEXTURE_2D) 
  7375.     move.l    $C(a5),d0
  7376.     cmp.l    #$DE1,d0
  7377.     beq.b    L1459
  7378. L1458
  7379. ;      gl_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage3DEXT(
  7380.     move.l    #L1445,-(a7)
  7381.     pea    $500.w
  7382.     move.l    a2,-(a7)
  7383.     jsr    _gl_error
  7384.     add.w    #$C,a7
  7385.     movem.l    (a7)+,d2-d7/a2-a4
  7386.     unlk    a5
  7387.     rts
  7388. L1459
  7389. ;   if (level<0 || level>=MAX_TEXTURE_LEVELS) 
  7390.     tst.l    d2
  7391.     bmi.b    L1461
  7392. L1460
  7393.     cmp.l    #$B,d2
  7394.     blt.b    L1462
  7395. L1461
  7396. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage3DEXT
  7397.     move.l    #L1446,-(a7)
  7398.     pea    $501.w
  7399.     move.l    a2,-(a7)
  7400.     jsr    _gl_error
  7401.     add.w    #$C,a7
  7402.     movem.l    (a7)+,d2-d7/a2-a4
  7403.     unlk    a5
  7404.     rts
  7405. L1462
  7406. ;   if (width<0) 
  7407.     tst.l    d7
  7408.     bpl.b    L1464
  7409. L1463
  7410. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage3DEXT
  7411.     move.l    #L1447,-(a7)
  7412.     pea    $501.w
  7413.     move.l    a2,-(a7)
  7414.     jsr    _gl_error
  7415.     add.w    #$C,a7
  7416.     movem.l    (a7)+,d2-d7/a2-a4
  7417.     unlk    a5
  7418.     rts
  7419. L1464
  7420. ;   if (height<0) 
  7421.     tst.l    d5
  7422.     bpl.b    L1466
  7423. L1465
  7424. ;      gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage3DEXT
  7425.     move.l    #L1448,-(a7)
  7426.     pea    $501.w
  7427.     move.l    a2,-(a7)
  7428.     jsr    _gl_error
  7429.     add.w    #$C,a7
  7430.     movem.l    (a7)+,d2-d7/a2-a4
  7431.     unlk    a5
  7432.     rts
  7433. L1466
  7434. ;   teximage = texSet->Current3D->Image[level];
  7435.     move.l    a4,a1
  7436.     move.l    $B0(a1),a0
  7437.     lea    $50(a0),a0
  7438.     move.l    0(a0,d2.l*4),a3
  7439. ;   if (teximage) 
  7440.     cmp.w    #0,a3
  7441.     beq    L1483
  7442. L1467
  7443. ;      if (xoffset < -((GLint)teximage->Border)) 
  7444.     move.l    a3,a0
  7445.     move.l    $8(a0),d0
  7446.     neg.l    d0
  7447.     cmp.l    d0,d4
  7448.     bge.b    L1469
  7449. L1468
  7450. ;         gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
  7451.     move.l    #L1449,-(a7)
  7452.     pea    $501.w
  7453.     move.l    a2,-(a7)
  7454.     jsr    _gl_error
  7455.     add.w    #$C,a7
  7456.     movem.l    (a7)+,d2-d7/a2-a4
  7457.     unlk    a5
  7458.     rts
  7459. L1469
  7460. ;      if (yoffset < -((GLint)teximage->Border)) 
  7461.     move.l    a3,a0
  7462.     move.l    $8(a0),d0
  7463.     neg.l    d0
  7464.     cmp.l    d0,d3
  7465.     bge.b    L1471
  7466. L1470
  7467. ;         gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
  7468.     move.l    #L1450,-(a7)
  7469.     pea    $501.w
  7470.     move.l    a2,-(a7)
  7471.     jsr    _gl_error
  7472.     add.w    #$C,a7
  7473.     movem.l    (a7)+,d2-d7/a2-a4
  7474.     unlk    a5
  7475.     rts
  7476. L1471
  7477. ;      if (zoffset < -((GLint)teximage->Border)) 
  7478.     move.l    a3,a0
  7479.     move.l    $8(a0),d0
  7480.     neg.l    d0
  7481.     cmp.l    d0,d1
  7482.     bge.b    L1473
  7483. L1472
  7484. ;         gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
  7485.     move.l    #L1451,-(a7)
  7486.     pea    $501.w
  7487.     move.l    a2,-(a7)
  7488.     jsr    _gl_error
  7489.     add.w    #$C,a7
  7490.     movem.l    (a7)+,d2-d7/a2-a4
  7491.     unlk    a5
  7492.     rts
  7493. L1473
  7494. ;      if (xoffset+width > (GLint) (teximage->Width+teximage->B
  7495.     move.l    d4,d0
  7496.     add.l    d7,d0
  7497.     move.l    d0,-$10(a5)
  7498.     move.l    a3,a0
  7499.     move.l    $C(a0),d0
  7500.     move.l    a3,a0
  7501.     add.l    $8(a0),d0
  7502.     move.l    -$10(a5),d6
  7503.     cmp.l    d0,d6
  7504.     ble.b    L1475
  7505. L1474
  7506. ;         gl_error( ctx, GL_INVALID_VALUE,
  7507.     move.l    #L1452,-(a7)
  7508.     pea    $501.w
  7509.     move.l    a2,-(a7)
  7510.     jsr    _gl_error
  7511.     add.w    #$C,a7
  7512.     movem.l    (a7)+,d2-d7/a2-a4
  7513.     unlk    a5
  7514.     rts
  7515. L1475
  7516. ;      if (yoffset+height > (GLint) (teximage->Height+teximage-
  7517.     move.l    d3,d0
  7518.     add.l    d5,d0
  7519.     move.l    d0,-$C(a5)
  7520.     move.l    a3,a0
  7521.     move.l    $10(a0),d0
  7522.     move.l    a3,a0
  7523.     add.l    $8(a0),d0
  7524.     move.l    -$C(a5),d6
  7525.     cmp.l    d0,d6
  7526.     ble.b    L1477
  7527. L1476
  7528. ;         gl_error( ctx, GL_INVALID_VALUE,
  7529.     move.l    #L1453,-(a7)
  7530.     pea    $501.w
  7531.     move.l    a2,-(a7)
  7532.     jsr    _gl_error
  7533.     add.w    #$C,a7
  7534.     movem.l    (a7)+,d2-d7/a2-a4
  7535.     unlk    a5
  7536.     rts
  7537. L1477
  7538. ;      if (zoffset > (GLint) (teximage->Depth+teximage->Border))
  7539.     move.l    a3,a0
  7540.     move.l    $14(a0),d0
  7541.     move.l    a3,a0
  7542.     add.l    $8(a0),d0
  7543.     cmp.l    d0,d1
  7544.     ble.b    L1479
  7545. L1478
  7546. ;         gl_error( ctx, GL_INVALID_VALUE,
  7547.     move.l    #L1454,-(a7)
  7548.     pea    $501.w
  7549.     move.l    a2,-(a7)
  7550.     jsr    _gl_error
  7551.     add.w    #$C,a7
  7552.     movem.l    (a7)+,d2-d7/a2-a4
  7553.     unlk    a5
  7554.     rts
  7555. L1479
  7556. ;      if (teximage->Data) 
  7557.     move.l    a3,a1
  7558.     tst.l    $34(a1)
  7559.     beq.b    L1482
  7560. L1480
  7561. ;         copy_tex_sub_image( ctx, teximage, width, height, 
  7562.     move.l    d1,-(a7)
  7563.     move.l    d3,-(a7)
  7564.     move.l    d4,-(a7)
  7565.     move.l    $24(a5),-(a7)
  7566.     move.l    $20(a5),-(a7)
  7567.     move.l    d5,-(a7)
  7568.     move.l    d7,-(a7)
  7569.     move.l    a3,-(a7)
  7570.     move.l    a2,-(a7)
  7571.     jsr    _copy_tex_sub_image
  7572.     add.w    #$24,a7
  7573. ;         if (ctx->Driver.TexImage) 
  7574.     tst.l    $9C8(a2)
  7575.     beq.b    L1482
  7576. L1481
  7577. ;           (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_3D_EX
  7578.     move.l    a3,-(a7)
  7579.     move.l    a3,a0
  7580.     move.l    4(a0),-(a7)
  7581.     move.l    d2,-(a7)
  7582.     move.l    a4,a1
  7583.     move.l    $B0(a1),-(a7)
  7584.     move.l    #$806F,-(a7)
  7585.     move.l    a2,-(a7)
  7586.     move.l    $9C8(a2),a0
  7587.     jsr    (a0)
  7588.     add.w    #$18,a7
  7589. L1482
  7590.     bra.b    L1484
  7591. L1483
  7592. ;      gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage3
  7593.     move.l    #L1444,-(a7)
  7594.     pea    $502.w
  7595.     move.l    a2,-(a7)
  7596.     jsr    _gl_error
  7597.     add.w    #$C,a7
  7598. L1484
  7599.     movem.l    (a7)+,d2-d7/a2-a4
  7600.     unlk    a5
  7601.     rts
  7602.  
  7603. L1444
  7604.     dc.b    'glCopyTexSubImage3DEXT',0
  7605. L1448
  7606.     dc.b    'glCopyTexSubImage3DEXT(height)',0
  7607. L1446
  7608.     dc.b    'glCopyTexSubImage3DEXT(level)',0
  7609. L1445
  7610.     dc.b    'glCopyTexSubImage3DEXT(target)',0
  7611. L1447
  7612.     dc.b    'glCopyTexSubImage3DEXT(width)',0
  7613. L1449
  7614.     dc.b    'glCopyTexSubImage3DEXT(xoffset)',0
  7615. L1452
  7616.     dc.b    'glCopyTexSubImage3DEXT(xoffset+width)',0
  7617. L1450
  7618.     dc.b    'glCopyTexSubImage3DEXT(yoffset)',0
  7619. L1453
  7620.     dc.b    'glCopyTexSubImage3DEXT(yoffset+height)',0
  7621. L1451
  7622.     dc.b    'glCopyTexSubImage3DEXT(zoffset)',0
  7623. L1454
  7624.     dc.b    'glCopyTexSubImage3DEXT(zoffset+depth)',0
  7625.  
  7626.     END
  7627.